WIP: Introduce Rubocop to ensure code style 

References discussion in #2499 and includes code from #2500

In short this aims to correct inconsistencies in Jekyll's current code style and provide a means of checking code style is maintained in future contributions. Jekyll will be following the [GitHub Ruby Styleguide](https://github.com/styleguide/ruby).

### Contributions

I have committed the auto-generated [.rubocop_todo.yml](https://github.com/createdbypete/jekyll/blob/introduce-rubocop/.rubocop_todo.yml), in this rubocop has disabled all the checks that don't pass in the Jekyll code. The goal is to empty this file!

Follow the standard [Jekyll Contributing Guide](https://github.com/jekyll/jekyll/blob/master/CONTRIBUTING.markdown)

1. Checkout this branch into your own fork
1. Pick a problem from [.rubocop_todo.yml](https://github.com/createdbypete/jekyll/blob/introduce-rubocop/.rubocop_todo.yml)
1. Verify it against the [GitHub Ruby Styleguide](https://github.com/styleguide/ruby) and amend `.rubocop.yml` accordingly. (Rubcop uses [the other styleguide](https://github.com/bbatsov/ruby-style-guide) for its checks, they are pretty much the same but check anyway)
1. If there isn't a styleguide rule to be found just ask in the comments of this PR.
1. Remove the entry from `.rubocop_todo.yml`
1. Run `rubocop` and `rake` to check nothing :bomb: 
1. Create a commit for each problem fixed so each commit acts as a metaphorical tick in the todo list
1. Create a pull request against my branch `createdbypete:introduce-rubocop` then all this work is confined to one PR in Jekyll
1. Take a moment to feel good about yourself, you've just given Jekyll some open source :heart: 

**Note:** Some of the problems in the list may not need fixing and instead the cop should be disabled to fit in with "Jekyll Style".
I don't think we should enforce string literals, should we? :/