Websockets subscription support

Here's a first shot at completing the support for websocket streaming (ledgers, transactions, and server statuses).

There is still more to do:
* Write unmarshalers for more types (so that other tx types can be successfully unmarshaled)
* Deal with the tx hash with is currently not unmarshaled at all.
* Add smaller tests for the unmarshal functions. Currently they're only tested as part of unmarshaling the entire transaction.
* Then move on to other websockets API commands (tx, ledger, ...)

I wanted to let you have a look before I go further so I can incorporate any comments you have. I'm still a Go novice so I'd be happy to get some tips or critique.