Rubocop

Adds [Rubocop](https://github.com/bbatsov/rubocop) for Ruby static code analysis.

- Picks up stylistics problems in our code
- Lints for possible errors and bad practice in our code
- Checks for smells such as such as class length, method length - see [Sandi Metz' Rules For Developers](http://robots.thoughtbot.com/sandi-metz-rules-for-developers for context)

Have addressed all warnings raised. We can tweak the configuration as needed going forward to suit shared team consensus.
Why are we enforcing alignment? It pollutes source history with whitespace-only changes, and is not community standard.