Initial wiring for buckets page

* The bucket drops can be fetched via the API
and displayed using the new UI. The drop detail,
listing and "drops" view are working.

* TODO: Edit drop metadata dialog, photos
view and bucket settings page
Login: Handle OAuth2\Exception

Instead of throwing an exception, fail the login.
Merge branch 'buckets-ui-dev' into rivers-ui-dev
Rename SwiftRiver_API to SwiftRiver_Client
API Client: Moved resource enpoints into separate classes
Display metadata edit dialog
Masonry fix.

* Removed margin around drops causing them to span multiple rows.
* Reduced the drop's width slightly.
Drops View: Display drop image
Dialog content transitions

* Implements fade(In/Out) transitions when switching
between view and edit/add mode
Display river and bucket lists in the header modal views.
Basic display of drops in river.

* Pending infinite scrolling and polling.
Metadata edit form

* Added a template for the form to be displayed when
a user wants to add a new metadata item via the edit
metadata dialog

* TODO: The template for adding place metadata
Add Drops API class

* Added stubs for the Drops API class

* Added SwiftRiver_Client#get_drops_api() to get and
return the Drops API
Add drop service class

* The drops service class invokes drop-related API requests
on behalf of the drop controllers
Prevent event propagation on delete metadata

* When a metadata item is deleted from the listing, we
have to stop/prevent event propagation else the dialog
will transition into edit mode.
Implement "View full-screen"

* Event wiring for "View full-screen" button.  Though the event
handler is in place, registration of the click event for this button
has been disabled mainly because once in "full screen mode"
there is no way to navigate back to the drops view/listing
Generate CSRF token once per session

* Regenerating the token during each time token validation
is performed causes DOS. E.g. A user being unable to use
separate browser tabs for form submission
Implement sharing dialog

* Implemented the dialog for sharing drops. Twitter and Facebook
sharing are still performed as before i.e. a pop up window loads
the login page for the selected service before the user can proceed
with sharing

* For email sharing, the share dialog transitions to "email sharing" mode
where the user enters the CAPTCHA and recipient's email address.
Stubs for drop comments API resources
Update metadata template

* Removed the "+" icon from "edit-metadata-item-field-template"
because only a single item (metadata) can be added a time.

* Add parentheses to the display label when it's length is > 50
chars