Switch to GCC 4.9.
Rename instances of value_type.

A value has type tag, which is the enum vast::value_type. Its values used to
have the suffix _type, which this patch changes to _value.

We need to perform this change because we will soon use the _type suffix for
actual types.
Add a stack-based allocator.
Remove ctor overload with initializer_list.
Refactor and rename elements.
Add new type layer.

This patch provdies the basic infrastructure for the new type system.

Relates #7.
Allow visitors to be passed as rvalues.
Add function to inhale file contents.
Refactor value parsing and container handling.
Fix visitation issues.
Rewrite schema code.

This rather large change is a big rewrite of the meta layer in VAST, i.e.,
typing and schema. One can now construct a schema based on types
programatically, and not just by parsing text.

Further changes:

  - Consolidate naming of parser data structures and VAST type system.

  - Offset extractors now require an event name, e.g., foo@0,0 references
    offset {0,0} from event foo.

  - Support for AST construction from schema predicates. For example, consider
    the type "record id { src: addr, dst: addr}", the event "foo(c0: id,
    c1: id)", and a predicate of "c.dst == X". VAST maps this schema query to
    the offset list [0-1, 1-1] for the event foo and constructs the
    corresponding AST nodes:

                          ||

                         /  \
                        /    \
                       /      \

                     ==        ==

                    /  \      /  \
                   /    \    /    \

                   0-1   X  1-1    X

     In the future, we may want support for both dis- and conjunctions, but
     most folks will assume a disjunction, so that's what we go for intially
     (and implicitly).

  - We will model events as records in the future, i.e., an event "is-a" record
    with additional meta data. The type system already assumes this.

Relates #7.