Transaction history refactor

Refactors the transaction history into two services:
 - TransactionHistory
   - Maintains a raw history of transactions from stellard
   - Handles the core pagination processing
   - Returns a page of transactions matching a given filter
   - Sets up listeners that fire when new transactions occur matching a given filter
 - PaymentHistory
   - Provides pages of payment transaction processed with the JsonRewriter
   - Broadcasts an event when new payment transactions occur
   - Fetches contacts for accounts involved in payment transactions

This lays the ground work for adding the TradeHistory service that will filter and process trades out of the meta data in the transaction history.

Ground work for #984.
Non-payment transactions could affect an account's balances, so the TransactionHistory service should broadcast a new event that this listens to.