Add Folder as a separate concept - Continued.

This change finishes up and polishes the previous "Add Folder" commit.
The purpose of these changes are to introduce a Folder doamin concept
with its own storage (via RDBMS Table). The Folder domain concept models
the parent Folders for test reports that exist on the file system. This
is important as it then allows us to manage the folder and its contents
from the UI.

Changes are as follows:

1.sql:
- Added DDL for new Folder table.

Folder.java:
- POJO to encapsulate Folder data.

IFolderData.java / JdbcFolderData.java:
- API and JDBC implementation for folder storage. The JDBC
implementation also provides an in-memory cache for folder data
implemented via com.google.common.cache.LoadingCache.

FolderCacheDataLoader.java:
- Data retrieval to support the JdbcFolderData LoadingCache.

ReportParser.java:
- Updated to use a Path object representing the parent folder when
parsing report XML into ReportedTestSuiteEntry objects.

BatchJdbcImporter:
- Was updated in the previous commit to utilise IFolderData to create a
new Folder in storage if it doesn't already exist when parsing
ReportedTestSuiteEntrys.