Compilation warning fixes.
Add class to represent types.

For now can only represent scalar types; other obvious candidates are
array, hashes, stashes, typeglobs.
Remove some unused code for handling non-jittable subtrees in the old jit.
Added a new Term type that is jiittable and jiitted to nothing.

Attributes on lexical variables are evaluated at runtime, so
the perl parser actually emits an optree for the method call registering
the attributes:

    my $x : Int;

expands to something equivalent to:

    my $x;
    attributes::->import(__PACKAGE__, \$x, 'Int');

and the call happens at runtime every time execution reaches
the lexical declaration.

This is BAD, especially for performance.

The next commit will add code that recognizes the optree generated by attribute
expansion, parses the attributes and returns a NullOptree term that will be
replaced with a stub op by the JIT (or simply jitted to nothing when we manage to
jit all the code around it).

It might make sense to attach the attributes to the NullOptree node, in the
spirit of providing the caller with more rope to han... more information about
the syntax tree.
Added first pass of the code to recognize attributes.

For now it parses recognized types and throws away the information;
actually doing something with the information requires adding a
structure which is then referenced by all AST::Variable nodes.

Then there is the issue of not slowing down execution of type-annotated
code when run without JIT enabled (plan: modify the calling OP_ENTERSUB
in place like Class::XSAccessor does; will still take a speed hit the first time
the variable is seen but is probably acceptable).