Add asn1 to app start in itest for R16 compat

This should still work for R15 since return values of application:start
are not being checked. In R16, the public_key application depends on
crypto and asn1.
Support for INSERT ... RETURNING queries

Postgresql allows INSERT queries to return data via RETURNING. This is
especially useful to return values generated by the DB such as sequence
values and time stamps.

This patch introduces a new return type as:

    {ok, Count, Rows}

Providing the return value in this form most closely matches what comes
back from pg. For the happy path case, there's little value in providing
the count as that should match the number of rows returned; an alternate
API would detect this case internally and return it as simply `{ok,
Rows}`. For now, aligning with the data returned by the DB seemed like
the right starting place.
Use concrete for standard Makefile goodness

Will allow us to easily make use of dev-only deps.
Add parse_trans as a dev-only dep

Setup for new sqerl_rec module which can leverage the exprecs parse
transform included in parse_trans to implement the sqerl_rec behavior
in a more convenient fashion.
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.
Merge pull request #46 from opscode/sf/sqerl-rec

Introduce sqerl_rec for convenient record <-> pg mapping