Handle correctly shorthand assignment ops

The have slightly different semantics that were not originally accounted
for. This fixes #266.
Always allow line breaks inside hash literal braces.
Merge pull request #273 from jonas054/fix_multiline_hash_literal_bug

Always allow line breaks inside hash literal braces.
Add a details formatter.

I anticipate a bit of discussion before this is merged. For example:

1. The name "details".
2. Adding a source parameter to Cop and Offence constructors. It was not
   possible to get the source line from a Range object in all situations,
   e.g. if the program consisted only of comments.
3. The output. It's based on "simple" with the file name added for each
   offence, since I found that the file name heading often is scrolled out
   of view now that each offence takes up three lines.
Get source line for detailed report from Parser objects if possible.
Make sure right type of location is sent to add_offence.
Correct DetailsFormatter#report_file displays parsable text.

It's now Rubocop::Formatter::DetailsFormatter#report_file displays text containing the offending source line.
Merge pull request #267 from jonas054/details_formatter

Add a details formatter.
Reliable parentheses around condition detection

This fixes #270.
New cop MethodInvocationParentheses

It tracks unwanted parentheses in method invocations with no arguments.
Add basic support for auto-correction of offences

This is work in progress on #172. One major outstanding point is that in
auto-correct mode we'll have to update the source buffers between cops
to avoid the chance of one cop overwriting the modifications done by another.