Adding a very basic Clerk::Template DSL

The basic templating DSL for Clerk will allow named, ignored,
and grouped elements. This commit has the very basic implementation
of those particular types of structural indicators.
Expanding named to support positional assignment

Expanding the named keyword to support adding a named element in
a specific order or from a specific position in the input data.
For example if you wanted to assign the second column of input to
the named paramter :b you would assign it as follows.

  t.named :b, :position => 2

Which would then result in a template of [nil, :b]
Merge branch 'template-dsl' of github.com:liftopia/clerk-gem into base
Back to Clerk::Base!

After a morning discussion with Paul and Jeff it seems that Clerk::Base
makes the most sense in separating our concerns

- Created ::Base to serve as the foundation for Clerks
- ::Parser contains a registry of available parsing implements
- ::Base has a parser option that accepts a Symbol, String, or Class
  (not instance)
- ::Base handles validation, serialization, callbacks
- Created a super basic ::CSVParser object to work with