fix: chain command N/A output + deduplicate RPC messaging routes
- get_chain_info now fetches from both /health (chain_id, supported_chains,
proposer_id) and /rpc/head (height, hash, timestamp)
- chain command displays Chain ID, Supported Chains, Height, Latest Block,
Proposer instead of N/A values
- Removed 4x duplicated messaging route definitions in router.py
- Fixed /rpc/ prefix on routes inside router (was causing /rpc/rpc/... paths)
- Fixed broken blocks-range route that was accidentally assigned to
get_messaging_contract_state
- Removed reference to non-existent contract_service