sqerl_gobot parse_transform

The `sqerl_gobot` got it's name because at first, it seemed like a
transformer knockoff. Also, there's another module called
`sqerl_transformers` and I thought calling it `sqerl_transform` would
get too confusing.

down version of `exprecs`. Since exprecs was built to allow you to
export multiple records from a single module, it had to a lot more work
than we needed. The exprecs-ish functions we've preserved are:

* `'#new'/0`
* `getval/2`
* `'fromlist/1`
* `fields/0`
* `'#is'/1`
* `setvals/2`

This PR suggests that functions with the intent of being called mostly
by `sqerl_rec` internals be prefixed with a `#`, but people can use
whatever functions they want.

We've also exported a type to encapsulate the record completely, take
the following record:

```erlang
-record(notifier_config_object, {
    name :: string(),
    rank :: string(),
    serial_no :: integer(),
    non_typed
}).
```

It exports the following dialyzer types:

```erlang
-type notifier_config_object() :: #notifier_config_object{}.

-type attr() :: name | rank | serial_no | non_typed.

-type prop() :: {name, undefined | string()}
              | {rank, undefined | string()}
              | {serial_no, undefined | integer()}
              | {non_typed, any()}.

-export_type([{attr,0},{notifier_config_object,0},{prop,0}]).
```

have been tabled from this PR. The code still exists in some branch and
we can revisit this in the future.
Merge pull request #72 from opscode/jd/parse_transform

Parse Transform for cleaner developer experience