Introduce sqerl_rec for convenient record <-> pg mapping

The sqerl_rec module makes it easier to define the queries and
functions to map a record to and from the db via sqerl.

The module defines a behaviour and assumes that each record has a
module of the same name implementing the behavior. Given this,
sqerl_rec and generate fetch, delete, insert, update, fetch_all, and
fetch_page prepared queries and you can then use the corresponding
fetch, delete, insert, update, fetch_all, and fetch_page functions in
the sqerl_rec module.

You get maximal convenience by using the exprecs parse transform in
your record module that implements the sqerl_rec behaviour, however,
it is not mandatory.

You can provide additional custom prepared queries for each record, or
avoid use of the default query generators entirely -- you'll need to
name queries and have parameters align if you still wish to make use
of the common db operation functions.

Assumptions:

- The update function and query gen assumes an 'id' field and does
update by id.

- By default, sqerl_rec assumes the table name for a given record is the
  plural of the record name. An imperfect pluralization function is
  included. If this fails, or if your tables do not align in this way,
  the record module can implement `'#table_name'/0` (not part of the
  behaviour to keep the default implementation smaller).

Examples:

Look at the kitchen and cook modules in the test directory to see
what's required for simple cases. The corresponding schema is in
test/sqerl_rec_test_db_schema.sql. There is basic test coverage in
place for the kitchen module which demonstrates the db operation
helpers in the sqerl_rec module.