Added proj4j code, reprojection subproject, reprojection for geotrellis.feature

This pull request takes the code from proj4J, writter by Martin Davis. This isn't added as a binary dependency because there isn't a clear way to add it as a binary dependency. Also it gives us the chance to add scala wrappers around geotrellis-proj4j, and make edits to the code. Eventually we might port the code to scala.

This also creates implicits for geotrellis.feature Geometries and Features to add a `.reproject` method that allows for easy reprojection of vector data.

ALSO: This fixes a "bug" in the Vectorization code; before we were generating self-intersecting polygons that were considered invalid by JTS. Since the new geotrellis.feature code checks for valid JTS geometries, there some failing unit tests that were ignored in a recent commit. This fixes that by making sure the polygons are valid.