Implement INI file handling without ini4j library
Remove ini4j from compile-time dependencies
Upgrading to GeoTools 10.5.

Requires change to OSM SpatiaLite export test to use new org.spatialite.JDBC driver.
Merge pull request #586 from dwins/ini-files

Implement INI file handling without ini4j library
update version from 0.7-SNAPSHOT to 0.8-SNAPSHOT
Merge branch 'gt-10.5' of github.com:jdeolive/GeoGit into jdeolive-gt-10.5
Added SQLite storage module.

Includes:
 * Base module for all SQLite backends
 * Backend implementation based on xerial SQLite driver
 * Implementations of object, graph, config, and staging storage
Enable sqlite as a storage backend option for CLI
Merge branch 'sqlite2' of github.com:jdeolive/GeoGit into jdeolive-sqlite2
set geogit-sqlite version to 0.8-SNAPSHOT
Applying proper formatting and organizing/cleaning up imports.
Removing redundant data source creation.

Artifact of old connection handling, we now create a new data source whenever
we need a new connection.
workaround for tinkergraph database be open by multiple processes
guard FileRefDatabase from trying to resolve directories as refs
Allow a repository to be used by multiple processes concurrently.

A new Hints class contains flags to indicate whether the object and staging databases,
as well as remote repositories, should be open in read-only mode. It is injected
through Guice on the components that can make use of them.

CLI commands can easily state how they operate on those components by using the
following annotations:
 - @ReadOnly: purely read only command (e.g. diff, cat, show)
 - @ObjectDatabaseReadOnly: command modifies the staging area but not the
                            object db (e.g. add, clean, remove)
 - @StagingDatabaseReadOnly: command modifies the object db but not the
                            staging area (e.g. clone, pull, tag)
 - @RemotesReadOnly: command uses remote repositories but only for reading (e.g. fetch, pull)

The CLI application now opens and closes the repository on each command, locking
the databases for write access on a command by command basis as needed, and hence
allowing multiple processes to run read only commands concurrently, and failing to
execute write commands if another process is locking the dbs for write access.

The functional tests are adapted to handle test data setup by acquiring a disconnected
read-write GeoGIT instance from the cli whenever needed and closing it when done setting
up the test scenario.

Also a lot of code duplication was removed from functional tests as different packages
had duplicated step definitions. They now use the Cucumber "glue" option to indicate
where to look for step definitions.
Remove ini4j dependency from tests.

Also remove duplicated code between IniPGProperties, IniOracleProperties, IniSQLServerProperties,
and IniMongoProperties by introducing a base superclass OnlineTestProperties.
Make shp export use the current working dir from Platform when given a relative path.

This avoids the functional test leaving dangling shape files in the project
folder that then can be committed by mistake.
Fix shp export functional test definition.

The 'Try exporting an inexistent feature type' scenario in ShpExport.feature was working
by accident because previous scenarios were leaving Poinst.shp in the project folder, but
the test definition had the wrong expectation.
Merge remote-tracking branch 'origin/pr/592'
Fix Ref.getType() to return COMMIT, deprecate it, and get rid of its uses everywhere.

Ref.getType() is kind of a forced property. It doesn't really belong to the
ref database and its practically hardcoded to be COMMIT.
The Ref.getType() method gets deprecated and scheduled to be removed in 0.9.0
as its practically of no use and forces ref-parse to unnecessarily call on
resolve-object-type, which can be called separately in case some client code
needs to figure out what kind of object a ref points to with the ref's object
id as argument.