Generate URL "slug" from phrase

* Added a new method - generateURLSlug - in EntityDTO
for generating a URL slug from a phrase.  The phrase is
normalized and any whitespace characters are replaced
with hyphens ("-")
Bulk entity insert

* Added a createAll method for "bulk insert" operations.
There is no bulk insert in vanilla JPA so the entities so we persist
the entities inside a loop. The createAll() method should be invoked
in a @Transactional context

* Removed AbstractServiceImpl. Unnecessary.
Populate river + bucket data in Account Map

 Return the list of rivers and buckets an account owns, is
collaborating on or follows when querying account data.
Refactoring

* Added a findByHash() method in the tag, place, link and media
DAOs. This method takes a list of hash values as a parameter
and uses them to return the entities with those values in their "hash"
column

* Moved the URL slug and MD5 hash generation from EntityDTO
to SwiftRiverUtils

* Removed @Transactional annotations from the DAO classes. These
should be in the service classes

* Added two new entities; RiverCollaborator and BucketCollaborator
to represent the river_ and bucket_ collaborators tables respectively. These
tables have additional columns thereby necessitating this
Merge branch 'master' into dao-dev

Conflicts:
	src/test/java/com/ushahidi/swiftriver/core/api/controller/AbstractControllerTest.java
	src/test/java/com/ushahidi/swiftriver/test/AbstractSwiftRiverTest.java
	src/test/java/com/ushahidi/swiftriver/test/AbstractTransactionalTest.java
Fix failing unit tests after master merge

* Switched the transaction manager to JpaTransactionManager because
DataSourceTransactionManager doesn't post data to the DB

* Additional test data; sequence names, sample users, accounts, rivers
and buckets

* Cleaned up the tests for the river and bucket services
AccountController Tests

* Fixed missing authentication.
* Dates now RFC822 formatted.
* Added followers/following to account model.
Set connection timezone to UTC in test data script.
Exceptions for HTTP error codes

* Exceptions for generating 404, 401, 403 and 400 HTTP status
codes. These exceptions have been declared with the
"@ResponseStatus" annotation
Rivers controller wiring

* Fixed erroneous return types in the rivers controller
and implemented the handlers for handling river creation,
fetching, deletion and channel addition and deletion

* DTOs for the river, channel and channel options models

* Moved the set up for the controller tests to AbstractControllerTest
Refactor DAO tests

* Moved the DAO test classes to the
com.ushahidi.swiftriver.core.api.dao.impl package
Do not always accept HTTP status 200

* The MockMvc instance had been set up to always expect
HTTP status 200 so the tests will fail when testing for requests
that return status codes other than 200
Empty constructors for exception classes

* This allows the exceptions to be thrown without
specifying a message for the stack trace
DTO Refactoring

* Renamed EntityDTO to AbstractDTO. The createEntity
and createModel methods have also been renamed to
createMapFromEntity and createEntityFromMap respectively

* An existing entity can now be updated from a map via the
updateEntityFromMap method. This method performs internal
validation of the source java.util.Map object. The actual copying
of the properties is performed by coptyFromMap; a method that
is not visible to the class calling the DTO instance
Added dozer for easy bean to bean mapping
Added getByName method for Accounts

* Also added an Account DTO for easier mapping.
Implemented getRiverById

* and associated data, models and transfer objects.
* moved the channel_filters and channel_filter_options tables to
river_channels and river_channel_options respectively.
Add and delete collaborators API resources

* Implemented the service methods for handling creation
and removal of collaborators

* Additional test data and schema fixes necessary for the
integration tests.
pom.xml: Change artifact-id to swiftriver-api
Rename channel_filter_* tables

* channel_filters is now river_channels and channel_filter_options
is now river_channel_options. These changes have also been
propagated to the POJO wiring and test data DML