QueueCtrl: Add claim buttons (and display queue as a table)

Now you can click the claim button to claim pieces in the queue view.
I use toISOString [1] to get current date strings, and the 'update'
command [2] to post the new information to Elasticsearch.

As of this commit,

  .then(function(result) {
    $scope.search();
  }

is getting stale search results.  I fix this in a later commit which
adds 'refresh' arguments to the updates.  Another issue with this UI
is that that claimed items are shunted to the back of our
arbitrarily-ordered search results (perhaps they are ordered by
edit-time?).

[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
     Supported by major browsers and IE 9+.  Specified in ECMAScript
     5.1.
[2]: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-update
DetailCtrl: Add detail-side claim handling

Only expose the 'Save' button if we've claimed the piece.  Also update
the 'finished' and 'name' values in the Elasticsearch index when we
save changes.
QueueCtrl: Add brand ids to the Elasticsearch index

Then you can filter with something like /#/queue?q=brand:776

Mapping between brand names and ids is left as an excercise for the
reader.  I'll add it in if this branch lives long enough to need it.
app/js/controllers.js: Use detect_noop for Elasticsearch updates

Ask Elasticsearch to only bump an item's version if we're changing
data [1].

[1]: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html
setup_index: Use Beehive's id in Elasticsearch

http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-create
Use refresh=true to syncronize indexing

Create [1] and update [2] both accept a 'refresh' argument.  Set this
for the last creation and after all updates, to ensure subsequent
searches get up-to-date information [3].  Otherwise actions stored in
.then() clauses can get stale search results, which makes for a
confusing UI ("I thought I just claimed that!").

[1]: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-create
[2]: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-update
[3]: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html
QueueCtrl: Redirect from the claim button to the detail view

Avoid the "claimed items shifted to end of search results" issue
mentioned in e5e8abc4 (QueueCtrl: Add claim buttons (and display queue
as a table, 2014-08-19).  A better alternative would be to add a
'priority' field to the Elasticsearch entries and then use that field
to order the search results.  Food for a later commit.