Improve the humanAccountID cache (RIPD-693)

Profiling indicated some performance issues coming from the
cache of 160-bit account IDs to base58 format. This replaces
the single cache with two caches and rotates out old
entries.
Improve hex conversion & parsing routines
Fix incorrect source issuer for XRP source
Stability bugfixes for online delete SHAMapStore:
The correct ledger age is necessary for checking health
status, and the previous behavior caused the online deletion process to
abort if the process took too long.

The tuning parameter added and the parameter whose default was modified both
minimize impact of SQL DELETE operations by decreasing the default batch size
for deletes and for increasing the backoff period between deletion batches.
These parameters decrease contention for the SQLite and I/O with the trade-off
of longer processing time for online delete. Online-delete is not a
time-critical function, so a little slowness in wall-clock time is not harmful.
Revert e4c9822d785 "Enable processor-specific optimizations when available:"
Whitespace: clean WebSockets to 80 columns.
Do not use path if path expansion fails
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.
Clean up and document the publication engine:
* Clean up and reorganize
* Add inline comments
[FOLD] Functional changes:
* Don't fetch history when validated ledger age > 60
* Don't advance if no valid ledger
[FOLD] Update README.md