Merge branch 'pr/13' into 1.6-stable
Merge branch 'master' into 1.6-stable
Bump to 1.6.1
Merge branch 'master' into 1.6-stable
Use git version and bump.
Add a recent rebar and update the Makefile for dialyzer.
Add specs and types to the core parser and generator.
Add a few more type signatures.
Fix `make test`.
Avoid emitting unused combinators via macros.

This is a stop-gap to reduce dialyzer errors in generated parsers,
i.e. until a more thorough approach can be taken. Essentially
neotoma's parser tracks which combinators are used by in grammar, and
then the generator emits macros at the top of the Erlang output to
ensure that those used combinators are present, but no others.
peg_includes.hrl wraps each optional combinator in appropriate -ifdef
macros. There's still a possibility that a successful sub-tree of a
failed branch will cause an unused function to be included, but most
grammars should not encounter this problem.

Globally-unused combinators were also removed from peg_includes.hrl,
namely p_and/1 and p/4. p_eof/0 remains for future use but is guarded
by a macro.

The line/1 and column/1 functions must be manually turned on by
defining the 'line' and/or 'column' macros in the global code block.

Fixed the remaining dialyzer bugs in neotoma.erl, removing an
unnecessary clause of validate_params/4 and fixing the option() type
to include an option used by the escript.

Provided additional specs for the remaining functions in
peg_includes.hrl.