(GEP-165) Speed up the CSS Dom formatter

Formatting large files is a fairly slow process. On older laptops
it can take several seconds to format a moderately large manifest.
Profiling shows that the culprit is in Select.NodeSelector.match().

This commit will speed things up a lot. The main reason for the
speed-up is that the constant predefined EnumSet instances are no
longer wrapped in a Collections.unmodifiableSet() since that
wrapper effectively removes all benefits of using EnumSets. The
underlying cause can be found in the RegularEnumSet and the
first two lines of the containsAll() method:

     public boolean containsAll(Collection<?> c) {
        if (!(c instanceof RegularEnumSet))
            return super.containsAll(c);

Wrapping the EnumSet will result in super.containsAll(c) which in
turn will do a sequential iteration over the elements and call the
contains() method on each. The contains() method in turn will check
the class of the element befor checking if the element bitmap overlaps.

Compare this to just comparing the 'elementType' contained in both
sets once and then checking for bitmap overlap.
(GEP-113) Add deprecation warning for use of import.

This commit adds a new 'ImportIsDeprecated' validation issue and
code that will report when the import keyword is used. The severity
can be controlled by a validation preference which is set to 'warning'
by default for target platforms below 4.0 and hard-coded to 'error'
for 4.0 and above.
(GEP-113) Add manifestdir preference

This commit adds both a global and a project specific setting for
the preference "Manifest Directory". The setting can then be used
in the "Search Path" as $manifestdir. The default search path
is changed to include '$manifestdir/*' instead of 'manifests/*'.
Merge pull request #28 from puppetlabs/issue-113

Issue 113
Merge pull request #26 from puppetlabs/issue-165

(GEP-165) Speed up the CSS Dom formatter
Source code auto-cleanup.

This commit is the result of running an automatic clean-up using
the "Puppet Labs Cleanups" profile. The objective is to get rid
of constant white-space changes caused by older Eclipse formatters
that were less capable.

The commit does not alter any logic.
(GEP-604) Allow references to preceding definition arguments

This commit ensures that expressions in a definition argument list
are allowed to reference arguments that has been declared previously
in the list and that references to other arguments in the list are
reported as "Reference to not yet initialized variable" rather than
"Unqualified and Unknown variable".