Fixes problem due to introduction of 'unless' keyword.

Attribute names can contain keywords. Even if not used at all, one of
the resources has an 'unless' attribute.
Adds support for passing a targetURI when loading test code.
Adds test for Issue #399
Adds check/hard error for unquoted interpolation. Closes #405

Turns out that unquoted interpolation is not supported by puppet
runtime. At one time it may have been supported since it was in the
parser, but it never worked... so hence then hard error.
Adds issue code for circular module dependency.
Adds semantic highlighting to parameter name keyword. Closes #401

When keywords are used as parameter name it needs to be highlighted
as plain text as all other parameter names (and not as a keyword).
Changes rule for whitespace after unquoted interpolation. Closes #402

The closing } was not recognized as the closing brace in an unquoted
interpolation i.e. ${x} and made formatter add a linebreak after it.
Cleans up warning about unused style selector.
Adds quickfixes for unquoted interpolated string. Closes #405
Adds validation of reserved class names main and settings. Closes #407
Validates that definition parameters start with $. Closes #403

The deprecated way of specifying parameters is now an error in 3.0.
This commit also contains changes to testing infrastructure to enable
running the same test-suite for different puppet targets.
Adds w.i.p for facter.
Adds optional pattern to TPVariable.

This is required to handle some of the facter variables as it is
impossible to deduce what these parts are. 
Adds storing of TPVariable pattern in IEObjectDescription user data.

This enables access to a TPVariable's optional pattern string from the
index.
Adds Facter 1.6 to the target platform. Issue #167

The interface Facter describes facter facts. The Facter1_6 class is a
concerete implementation for version 1.6. This class is capable of
producing a PPTP model. 

A static copy has been generated and added to the targets in pp.
The handler that syncs the hidden target project now also syncs
facter-*.pptp. (Although at this point there is just support for Facter
1.6, so not much choice what to sync :)

Feature not yet complete, as there are some variables with wildcards
that are found in their base/prefix form (i.e. producing false
positives).
Adds rudimentary doc hovering. Issue #412

Far from finished feature, but better than the default hovers that
appeared with some information about internal statement type.
Fixes issue with error when updating puppet TP.

When TP changed, the job to sync was doing too much (reinitializing
the preference store) which caused it to generate yet another change
event - two jobs chased eachother.

Now a new method initialized only the TP and is called on preference
change.
Adds a processor of documentation attached to Puppet ruby code.

Does a decent job, but fails on certain constructs due to the 
idiosyncrasies of "natural margin"...
Updates generated target platforms.

This adds missing variables that are set by puppet runtime (i.e.
neither facts, settings or meta variables).
One missing meta variable "caller_module_name" added.

Documentation is now processed, cleaned, and in html form.
Doc without <p> tags should be considered paragraphs.
Improves handling of documentation extracted from ruby code.

Documentation extracted from ruby code is now processed to
find the natural margin, remove leading space, and turn it into
HTML.