Allow parsing empty function calls

Such as "function()"
Added a container type tracker to variables

This let met track if I can override a variable when it is defined in a
parent scope. This is because the semantics of language-puppet, with
regards to inheritance, are different from Puppet's.
Divergence from documentation on selectors

It seems that you can put boolean values in selector cases, contrary to
what is documented at
http://docs.puppetlabs.com/puppet/3/reference/lang_conditional.html#cases-1