Shifts that require a code to claim.

### What is the problem / feature ?

The volunteer database needed shifts that required a code in order to be claimed, as well as enforcing authentication for claiming shifts, and enforcing that only the owner of a shift may release it.

### How did it get fixed / implemented ?

This fixes #10 , adding the concept of shifts that require a code in order to be claimed.  Included in this is a refactor to how claiming shifts worked.  No longer shall data be modified via a `GET` request!  I've updated the javascript to work appropriately.  There are some rendering issues that still need to be resolved.

### How can someone test / see it ?

Click on a button for a shift and see it getting claimed and released.

*Here is a cute baby animal picture for your troubles...*

![baby cute goat](https://f.cloud.github.com/assets/824194/2476725/66598aea-b067-11e3-9338-a1d26f021df7.jpg)