Add initial :JavaNew implementation for creating new types

Supports tab-completed element type (eg: class, interface) as well
as packages for the name of the new Type.

Usage:

  Without a package, the Type is created in the current package
    :JavaNew class Foo

  But package can also be specified
    :JavaNew interface com.example.Bar

  Abstract classes are just "absract" for brevity
    :JavaNew abstract Baz

Limitations:

  Does not yet support packages that aren't already created
Checkstyle cleanup
merge dhleong/JavaNew into master
improve JavaNew completion to account for the cursor position better

refs #362
format the code created by jdt NewCommand

Format the code so that it conforms to the user's configured brace
formatting, etc.

refs #362
update java new command to handle .java suffix + slashes if present

refs #362
fix JavaUtils.getPackageFragment to match full package name

If you have an existing package "foo.bar" and used getPackageFragment
with "bar", it would return "foo.bar" as a found package since it is
just checking if the path on disk ends in the supplied package name.
Instead, check the actual package name and don't use the on disk path.

refs #362
update jdt NewCommand to create missing packages if necessary

refs #362