Implement DatabaseResult and DatabaseResultRow

These will hold the data which we pass along when resolving the Promise
for a succeeded query. Three data types are supported for now:
getString, getInteger, getDouble.
DatabaseStatement should use a Long instead

No reason to limit ourselves to 32 bits..
Add some documentation to the Database.query() methods
Change PromiseResultHandler back to an interface

It's not properly invoking overridden methods, and I can't really be
bothered finding out why right now :-). It's probably some missing
@Override annotations.
Push database result sets to PendingQuery.result

That was we can return it to the caller.