Add peer count to HTTP server properties
Normalize sort paths in Visual Studio project generator
Refactor string-to-integer conversions
Cleanups:
* Remove obsolete config variables
* Reduce coupling
* Use C++11 ownership containers
* Use auto when it makes sense
* Detect edge-case in unit tests
* Reduce the number of LedgerEntrySet public members
Add ledger cleaner documentation (RIPD-555)
Add is_short_read()
Fix handling of HTTP/S keep-alives (RIPD-556):
* Proper shutdown for ssl and non-ssl connections
* Report session id in history
* Report histogram of requests per session
* Change print name to 'http'
* Split logging into "HTTP" and "HTTP-RPC" partitions
* More logging and refinement of logging severities
* Log the request count when a session is destroyed
Make log partitions case-insensitive
Avoid conversions whenever possible during RippleState lookups
[WIP] Add 'visitNodes' function and implement 'visitLeaves' with it
(this specific commit was David Schwartz. All subsequent Mark Travis)

Add config sections for rotate-delete:
[rotate_delete] #: number of ledgers in between rotation intervals
[keep_ledgers] #: number of recent ledgers to keep when deleting
[advisory_delete] 0|1: if enabled, require rpc call (not yet implemented)
to indicate the latest allowable ledger to delete

add RotateDelete class

launch RotateDelete thread

In RotateDelete, recover database and rotation state from shutdown or crash,
clean old database directories, start new backend if no previous database

Remove rocksdb contents and directory in destructor.

function to copy rotate of ledger from previous to current backend

some logic in rotation loop

WIP need cross-platform way to open file for writing to get file descriptor
for fsync()

write dbstate, rotation logic

Database::copyToCurrent(). Broken, need to modify fetchInternal() next.

WIP DatabaseImpl::fetchInternalRotateDelete()

database functions work with rotate-delete (fetch, store)

no batch writes for rotate delete in RocksDB

log RocksDB errors

rpc command "can_delete" used with ADVISORY_DELETE to let user allow
the earliest ledger to delete

remove [keep_ledgers] config, use [ledger_history] instead

don't start if [rotate_delete] is set and [ledger_history] is full

write dbStateFile for non-POSIX platforms. Does not write synchronously.

formatting cleanup

setup SQLite to persist rotate db state

can_delete RPC uses SQLite to set/get deletable ledger

[WIP] functions added to RotateDelete to replace monolithic functor

uncomment copyToCurrent

modularize RotateDelete::operator()() components

remove unused code

debug RotateDelete

Add config options to example config. Add log entries for RotateDelete.
modify log message.node.getString() changed recently
fix CREATE TABLE so all 5 columns are created
no need for <memory> header
clarify comment
fix SQL and add debugging messages
create [node_db] path if it doesn't exist for [rotate_delete]
fix SQL and return from cleanDbs if the path doesn't exist
remove logging entries
remove trailing whitespace
default journal mode for rotate.db and remove duplicate semi-colon