Make DocumentId and AnnotationId classes final

Identifier classes are made final because it does not make sense to inherit
anything from them. If a new Identifier class is needed, just create a new one.
Split Annotation class into NamedEntity and Annotation

Annotation class has been splitted into two others: former Annotation class and
NamedEntity class. NamedEntity holds information about the normalized text of
the annotation, meaning: normalized tex and category; it also has an Identifier
and a counter for the number of occurrences of that named entity in system's
data. Former Annotation now just holds the text of the annotation as it is in
the Document, and absolute start/end positions in that document; also has the
necessary Document and NamedEntity Identifiers that it references.

This simplifies the database model, and removes repeated information (category
and normalized text in all annotations).

Database naming notation has also been modified, all caps have been removed, so
"Documents" is now "documents", and separation between words is done via
underscores, so "NamedEntities" is "named_entities".
Move model database tables to its own package

Document, NamedEntity and Annotation database tables are moved to its own
"database" package in "*.models.database". It makes model class files smaller,
and more coherent since they do not mix model definition (logic) and database
table definition (persistence) in the same file.
Disable Ebean and Global object, update Play-Slick

Application.conf is modified to reflect the latest change in package
organization (moving database table definitions to "*.model.database"), and
removed the Global object and Ebean configurations since they are not used (at
least at the moment).

Fixed MySQL driver misconfiguration and removed Router configuration since the
default one will be used 'conf/routes', and it gives some problems if something
is left there.

Also added empty routes configuration in 'conf/routes'.
Update README information

Updated README.md to show information about what this repository is about. Will
be updated with more information as the project progresses.
Fixed issues on README
Fix misspell in Slick conf and enable Ebean for models

Slick configuration in application.conf had a misspelling (smartdrugsearch was
written as smardrugsearch). Also enabled Ebean for model package, it is not
necessary right now, but if disabled a non-sense error is given on execution,
it's just enabled to make that error not appear (it does not affect anything
actually, just shuts out that there is an error in the logs).
Clean up config and generate Evolutions

Configuration has been broken up into different files that are imported in
(included) onto the main configuration file (application.conf) as needed.
Currently, the only one separation is database connection parameters, into
"db-default.conf" and "db-test.conf". Default database configuration has also
been secured up by using environment variables instead of using a config file
for URL, user and passowrd; it's not relevant right now, since it is just in
development mode, but it will be when pushed onto production.

Also tracked Slick-generated SQL evolution files for default and test databases
into this git repository.
Add Base class to all test specs

Abstract base class BaseSpec is created to be inherited by all test classes. It
simplifies the mixin of multiple ScalaTest traits into just one common class
that every test class should inherit from.
Update configuration and evolutions

Evolutions have been disabled in the configuration file, since they are giving
me some problems, and the database table definitions are quite stable at this
point. The problem is in the table generation by Slick, that is just not quite
right at the moment, will solve it in the future if using evolutions becomes
necessary, but at this point it is simpler to just write by hand the SQL
scripts (which are added here, replacing the one generated by Slick).

Also moduralized a bit more the configuration files, placing the logging
settings into its own file, and updated some settings in the database files.
Remove Virtuslab Unicorn dependency

Virtuslab's Unicorn library is giving me some small headaches, so it is removed
and will implement a by-hand Identifier class that simulates what Unicorn
offers. Also, because of this library dropping, Slick and hence Play-Slick can
be upgraded to latests versions (that were not compatible with Unicorn).

Upgraded ScalaTest too to latest version just published (2.1.0) and ScalaMock
support for it.
Create Identifier trait and use FreeSpec in tests

Since Unicorn's library has been removed, an Identifier trait that does a bit
of what Unicorn did has been created to replace it without much problems. Also
added a IdentifierCompanion to it, the way that Unicorn did. All models have
been updated to use this one Identifier trait instead of the Ids from Unicorn.

All _.Predef objects inside object companions have been removed, making all the
implicits inside them available at the companion level, and added some implicit
definitions more for Play's path binders. Some of the Slick's column mappings
(implicits) have been replaced with the trait MappedTo of Slick 2.0, that now
can be used because of the library upgrade in previous commit.

FlatSpec in BaseSpec has been replaced with FreeSpec, since it imposes no
restrictions in how tests have to be structured, allowing to use simpler and
cleaner specification structures (e.g.: not using anymore that ugly "it").
Use cake pattern in database components

Database components (tables) have been updated to correctly use Slick in its
2.0 version, and implemented a Cake Pattern design, that allows the use of
different database drivers seamlessly: a DAL object is created with the correct
driver (JdbcProfile), and all database components (with its tables) are mixed
in to make use of that specific driver.

Also, mappers have been moved from Model objects to a Mappers trait that lives
only in the database package, achieving a more clean design this way, with less
implicit definitions in the model companion objects.
Implement pending tests in DAL Spec

Pending tests for testing CRUD in Named Entities and Annotations tables have
been implemented. Added two more pending tests for retrieving Documents and
Named Entities directly from the Annotations table: should create by itself the
Document or Named Entity instance based using its foreign key.