refactored to minimize API surface and thus requirements on projects that adopt this package

in particular, no need to use or implement this packages User and Role
entities.  Although there is still the requirement that the database
table and column names match those used in the DBI annotations if one
adopts the default DAO impl.