Various cleanups:
* Replace SYSTEM_NAME and other macros with C++ constructs
* Remove RIPPLE_ARRAYSIZE and use std::extent or ranged for loops
* Remove old-style, unused offer crossing unit test
* Make STAmount::saFromRate free and remove default argument
Add ZeroCopyOutputStream and tidy up
Split peer connect logic to another class (RIPD-711):
All of the logic for establishing an outbound peer connection including
the initial HTTP handshake exchange is moved into a separate class. This
allows PeerImp to have a strong invariant: All PeerImp objects that exist
represent active peer connections that have already gone through the
handshake process.
Use ppa:afrank/boost 1.57 for Travis
Combine STTx::checkSign overloads:

Callers don't need to specify the signing key -- they're just retrieving
the key from the SerializedTransaction and then passing it back.

This simplifies Ed25519 implementation.
First transaction
Create and use some testing API:

* Ledger::pointer
  createGenesisLedger(std::uint64_t start_amount_drops,
                      RippleAddress const& master);

* std::pair<RippleAddress, RippleAddress> createAccount();

* void
    makePayment(RippleAddress const& from, RippleAddress const& to,
                std::uint64_t amountDrops, Ledger::pointer const& ledger);
Add trust lines and currency payments.
Rename SerializedTransaction to STTx
[WIP] Advancing ledger.
[WIP] First ledger closed/advanced.
Package up close_and_advance.
Put correct time info into close_and_advance
Create API for creating an offer.
Alternate makePayment approach
Add cancelOffer, freezeAccount, unfreezeAccount.
Move tests to Ledger.test.cpp