createDrops implemented

* Translation of php version with drops and meta batch inserts for
performance.
* Mutex ensured through an exclusive row lock on the seq table.
* Media thumbnail, tag trends and authorization pending.
PostDrops: Fix for drops with any metadata item null

* A list of drops that had a drop with either tags, places, links or
media null was causing an ArrayIndexOutOfBounds exception due to the
'i' variable not updating correctly thus an incorrect index created.
* Solution is to use a for loop instead of foreach to ensure that both
i and j counters always increase when a 'continue' statement is
encountered.
PostDrops: Fix rivers_droplets sequence

* Sequence was not updating after inserting drops because
dropRiverList.size was being read before the list was initialized.
PostDrops: Update river max_drop_id and drop_count

* Update the rivers table with these values when inserting into
rivers_droplets
RiverChannels: Send notificaiton to MQ on update

* Added Spring AMQP
* Send a notificaiton on channel add, delete or modify.
Added MockAmqpTemplate

This allow integration testing without a real broker running.
Fix routing key for mq channel notifications

Was hard coded to rss instead of channel name from the updated channel.
PostDrop: Set original_url

* Update droplets.original_url when a drop url is set in the incoming
drop.
PostDrop: set droplet_image

* Update droplets.droplet_image with the id of the media whose url is
passed in the CreateDropDTO.image
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