(PUP-121) remove relative name spacing

This makes include, require and contain enforce non relative name-spacing of the given classnames when parser == future. It also allows the references to classes to be made with Class[name], and Resource['class', name] (they are also made absolute).

This is probably not all of the places where relative to absolute should be enforced... but a reasonable starting point.
I've been testing this out and have run into a snag using future Type references for Class['foo'] or Resource['class','foo'].  From what I can tell, the new transform_and_assert_classnames expects to receive a String or a Type, but Type references have already been converted here:

https://github.com/hlindberg/puppet/blob/PUP-121_remove-relative-name-spacing/lib/puppet/pops/evaluator/runtime3_support.rb#L248

so the transform_and_assert_classnames method ends up getting called with a [Puppet::Resource] instance, which falls through the case statement, and [nil] gets passed on to the compiler.evaluate_classes call in the various function bodies.

```
jpartlow@percival:~/work/puppet$ be puppet apply -e 'class foo { notify { 'foo': } }; include Class['foo']' --parser future --trace
Error: Evaluation Error: Error while evaluating a Function Call, undefined method `downcase' for nil:NilClass at line 1:32 on node percival.corp.puppetlabs.net
/home/jpartlow/work/puppet/lib/puppet/resource/type_collection.rb:167:in `resolve_namespaces'
/home/jpartlow/work/puppet/lib/puppet/resource/type_collection.rb:202:in `find_or_load'
/home/jpartlow/work/puppet/lib/puppet/resource/type_collection.rb:119:in `find_hostclass'
/home/jpartlow/work/puppet/lib/puppet/parser/scope.rb:235:in `find_hostclass'
/home/jpartlow/work/puppet/lib/puppet/parser/compiler.rb:209:in `block in evaluate_classes'
/home/jpartlow/work/puppet/lib/puppet/parser/compiler.rb:208:in `collect'
/home/jpartlow/work/puppet/lib/puppet/parser/compiler.rb:208:in `evaluate_classes'
/home/jpartlow/work/puppet/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
/home/jpartlow/work/puppet/lib/puppet/parser/functions.rb:155:in `block (2 levels) in newfunction'
/home/jpartlow/work/puppet/lib/puppet/util/profiler/none.rb:6:in `profile'
/home/jpartlow/work/puppet/lib/puppet/util/profiler.rb:43:in `profile'
/home/jpartlow/work/puppet/lib/puppet/parser/functions.rb:148:in `block in newfunction'
/home/jpartlow/work/puppet/lib/puppet/pops/evaluator/runtime3_support.rb:249:in `call_function'
/home/jpartlow/work/puppet/lib/puppet/pops/evaluator/evaluator_impl.rb:798:in `eval_CallNamedFunctionExpression'
```