Adding a number of ResultSetHandlers for use with makrut-db.

The default `ResultSetHandler` objects provided by DbUtils can return null
and are not composable.  This provides handlers for common use cases that
are designed to nest for easy extension, with utilities for the most common
cases (a list, a set, and a single item). Provides distinction between a
null return value, and no result.

Also annotates methods so that their return values are considered nonnull
by default.
Merge branch 'dbhandlers'