Support indexer listening on `/public` (json-rpc) and sui-node listening
on `/subscribe` (websockets).
- testing existing and new json-rpc routes (with indexer and sui-node):
```
curl -w "%{http_code}" http://localhost:9000/ -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0", "method":"sui_getObject", "params":["0x2"], "id":1}'
{"jsonrpc":"2.0","result":{"data":{"objectId":"0x0000000000000000000000000000000000000000000000000000000000000002","version":"1","digest":"7WbYdh6bcvniPfyZjUnjoLziM1KYuqEreRv5CFBYxXBS"}},"id":1}200%
```
```
% curl -w "%{http_code}" http://localhost:9000/json-rpc -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0", "method":"sui_getObject", "params":["0x2"], "id":1}'
{"jsonrpc":"2.0","result":{"data":{"objectId":"0x0000000000000000000000000000000000000000000000000000000000000002","version":"1","digest":"7WbYdh6bcvniPfyZjUnjoLziM1KYuqEreRv5CFBYxXBS"}},"id":1}200%
```
```
curl -w "%{http_code}" http://localhost:9000/public -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0", "method":"sui_getObject", "params":["0x2"], "id":1}'
{"jsonrpc":"2.0","result":{"data":{"objectId":"0x0000000000000000000000000000000000000000000000000000000000000002","version":"1","digest":"7WbYdh6bcvniPfyZjUnjoLziM1KYuqEreRv5CFBYxXBS"}},"id":1}200%
```
- testing existing and new websocket routes (with sui-node):
```
% wscat -c ws://localhost:9000 -P
Connected (press CTRL+C to quit)
> {"jsonrpc":"2.0", "id": 1, "method": "suix_subscribeTransaction", "params": [{"ChangedObject":"0x2"}]}
< {"jsonrpc":"2.0","result":2126515709876599,"id":1}
>
```
```
% wscat -c ws://localhost:9000/subscribe -P
Connected (press CTRL+C to quit)
> {"jsonrpc":"2.0", "id": 1, "method": "suix_subscribeTransaction", "params": [{"ChangedObject":"0x2"}]}
< {"jsonrpc":"2.0","result":3285488822574031,"id":1}
>
```