(maint) Only test lookup() with future parser

The lookup function only works when the future parser is in effect. This
changes the spec tests to turn on the future parser.
(PUP-3201) Stop using :undef for parameters in 4x

The :undef symbol was still leaking all over the place internally. This
caused type inference to sometimes end up with Runtime[ruby, Symbol]. By
using nil instead of :undef, everything can be much more
straightforward. Once the code removal for puppet 4 comes into play even
more oddities around how resource parameters are handled can be
performed.
Merge pull request #3210 from zaphod42/issue/stable/pup-3201-incorrect-string-for-undef

(PUP-3201) Stop using :undef for parameters in 4x