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.

I can't figure out why:

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

doesn't work, so I've just dropped in a hack $timeout.  Perhaps
there's some time between Elasticsearch returning "200 OK" on the
update and actually regenerating the index?  In any case, this short
delay seems to work.  The only problem is 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
QueueCtrl: Redirect from the claim button to the detail view

Avoid the "claimed items shifted to end of search results" issue
mentioned in the previous commit.  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.
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.