Fix: Add drop to bucket

* When adding a drop to a bucket, copy all the existing drop-specific
metadata (links, tags, places) over to the new BucketDrop

* Deleted DropsControllerTest. DropsController does not have any
endpoints for testing. These were removed following the change in
the strategy for adding metadata to drops
Implement Get/add/delete river and bucket drop comments

* The drop comments are also part of the data that are copied
over whenever a drop is added to a bucket
Remove DropComment entity class

* Drop comments are now specific to the drops in a  bucket/river
Add support for max_id and since_id query parameters

* Use max_id and since_id query parameters - when present -
to filter the drops list that is returned to the client
Implement bucket commenting

* Revised the structure of the `bucket_comments` table; removed
unnecessary columns and changed the primary key and foreign
key columns to BIGINT(20)

* POJO for the bucket_comments table and corresponding bean
wiring in the spring configuration file
Implement paging of bucket drops

* Support for the "page" parameter in BucketsController#getDrops
Add @ResponseBody to RiversController#deleteRiver

* Without the @ResponseBody, the API will attempt a redirect
thereby causing a 40x status to be returned to the client
Merge branch 'rivers-dev'

Conflicts:
	src/main/java/com/ushahidi/swiftriver/core/api/service/BucketService.java
	src/main/resources/config/sql/schema-create.sql
	src/main/webapp/WEB-INF/spring/web-context.xml
	src/test/resources/config/sql/test-data.sql
Fix: Expected test values

* For the BucketsControllerTest#addCollaborator and
RiversControllerTest#addCollaborator do not check for the exact
value of the returned collaborator_id. This is because JUnit doesn't guarantee
the test execution order so a if test case that adds an either a bucket or river
collaborator is executed before the controller test, the returned id will be
different as the RDMS rollback does not affect the AUTO_INCREMENT value

* Remove unnecessary imports
Fix: AccountsController#modifyAccount

* The account associated with the principal submitting the request
must be same as the account being modified else return a 401
to the client

* Updated tests to reflect change in signature in AccountsController#modifyAccount
and AccountsService#modifyAccount

* Do not use the DTO mapping when modifying an Account as this causes
NestedException to be thrown and subsequent transaction rollback. I suspect
this is because of the deep hierarchy & cyclic references in the Account model
Change type last_login column to TIMESTAMP

* Set the last login date upon successful login

* Remove unnecessary namespaces in web-context.xml
Restore: Map account properties from DTO

* Copy the new account properties from the ModifyAccountDTO
object. For some reason, the transaction rollback exceptions
are no longer being thrown

* Update the dateModified property in the Account model
each time an account is updated

* Throw Forbidden exception if the authenticating user is
not the owner of the account being modified
Implement change password

* Added a currentPassword property to ModifyAccountDTO
which is populated with the current password during a change password
operation.
Merge branch 'master' into post-drops-dev

Conflicts:
	src/main/java/com/ushahidi/swiftriver/core/api/controller/DropsController.java
	src/main/java/com/ushahidi/swiftriver/core/api/dao/impl/JpaDropDao.java
	src/main/java/com/ushahidi/swiftriver/core/api/service/DropService.java
	src/main/webapp/WEB-INF/spring/root-context.xml
	src/test/java/com/ushahidi/swiftriver/core/api/controller/DropsControllerTest.java
Merge branch 'master' into post-drops-dev