1.1 and 1.1.1 compliance

See #12. This will keep us fully compatible with 1.0 with fairly minimal code additions. 2.0 will be a completely different beast. A note for the Outcomes service, it is implemented *exactly* as the [implementation guide](http://www.imsglobal.org/LTI/v1p1p1/ltiIMGv1p1p1.html) has it specified and as a result some of the platforms have unexpected behavior (Moodle is a good example, they return the sourcedid as a JSON formatted string and expect you to return the hash attribute). If the platform follows the spec it should work fine.

A side note, I unit tested absolutely everything I possibly could while adding these updates but the outcomes service obviously needs a test bed, for now it does work to spec and I tested it against platforms. It would probably be a good idea down the line to make a test utility that can verify incoming data and present a "fake" server that will respond with the correct responses.
Nope they're just treated as a unique ID. It could be as simple as a simple increment counter if you wanted it to be. I just went with UUID due to it's widespread use and guarantees.