Add address subscription service

Add support for subscribing to payments received by standard addresses via websocket.
Add input matching as well as output as @aalness 's suggestion.
Add stricter error reporting in web socket API calls, for example if no valid option is provided when subscribing.
Add function for retrieving outputs matching a transaction's inputs.
Also, spoke out-of-band but I think this logic might be accomplished via something like this potential new method for UnconfirmedTransaction:

```ruby
def affected_addresses
  UnconfirmedAddress.join(:unconfirmed_ledger_entries, :address_id => :id)
    .where(:transaction_id: self.id).select_map(:address)
end
```