New DatabaseReader reads ledger numbers from database.

A start at a database reader - so far only for ledger numbers.
I think we should adopt sqlite3's builtin ```:placeholders``` to avoid suprious SQL errors in the future. Example:

```python
QUERY = """
SELECT
    L.*, count(1) validations
FROM
    (select LedgerHash, LedgerSeq from Ledgers
    ORDER BY LedgerSeq DESC LIMIT 10000) L
    JOIN Validations V
    ON (V.LedgerHash = L.LedgerHash)
    GROUP BY L.LedgerHash
    HAVING validations >= :validations
    ORDER BY 2 DESC
    LIMIT 1;
"""

conn.execute(query, {"validations": 3})
```

Reference: https://docs.python.org/2/library/sqlite3.html#sqlite3.Cursor.execute

There's a number of other spots in this commit that this happens.