Fixes NPE when checking attribute names in Collect expr. Closes #467

When linking a collect expression (virtual or exported) and the type is
not known, a null type was passed to the logic that checks the validity
of the attributes. It should simply skip the validation of the
attributes as the unknown type is flagged with an error in this case.
(#471) Fixes java.lang.StackOverflowError when validating long sq string

There is a problem with java regular expressions and using (x|y) as this
can cause very deep recursion. This bit the validator when checking for
unescaped single quotes in a single quoted string (something that can
only happen in model to code transformations as it is not accepted by
the parser in the first place).

This fix corrects this by using a simple non recursive scan of the
string instead of using a regular expression.
(#478) Adds Puppet "expression" classes as valid rvalues in arguments.
Closes #478

This adds all of the expressions currently allowed in Puppet (late
2.7 and 3x) as also being valid rvalues when setting arguments to
parameterized classes (used to be a more restrictive set of values).
Fixes issue where only first escaped sq was recognized as escaped.
Closes #479.
Puts a cap on httpcomponents version to avoid bogus 4.3-alpha1