Refactoring and code cleanup

Converting deckard to use AMD wrapper and some other refactorings that I bolted on to this PR :)

Status: **Ready to merge**

Reviewers: @tedtate @johnboxall 
JIRA: https://mobify.atlassian.net/browse/CSOPS-766

## Changes
- converted to use AMD wrapper
- removed orientation-changing class. It's not guaranteed to be removed when the event is completed, therefore provides a bit of a buggy implementation
- added examples section
- refactored detect and orientation functions to separate concerns; added addClasses function to perform class adding
- simplified class toggling on orientation change to reduce reflows

## How to test-drive this PR
- checkout this branch
- `grunt test`
- integrate into a plugin, like lockup, and ensure it works
- `grunt serve` and use the examples page at http://localhost:3000/examples/index.html to verify deckard is correctly adding classes/properties. Use Chrome dev tools to toggle devices and refresh to verify updates are occurring correctly.

@jansepar I had a few minutes to test it out:

http://mobifyjohn.s3.amazonaws.com/test-function-declarations/index.html

My main concern was that function declarations are shown as anonymous functions in inspectors. This actually no longer seems to be the case, as I can actually see the call stack of both functions in Chrome's JavaScript inspection.

You're right that function expressions are preferred over function declarations:

http://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/

I'll stop preaching them!

jb