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.
Correct a few problems with the code rewrite logic
Add auto-correct support for AndOr
Add autocorrect support for ColonMethodCall
Add auto-correct support for WhenThen
Sort detected offences stably

The detected offences weren't outputted in expected order on JRuby.
Probably the invocation order of Class.inherited,
which is used in Cop class, are different between MRI and JRuby.
Force JRuby not to select working directory as temporary directory

JRuby selects a temporary directory from the candidate directories,
which includes the ordinary /tmp and also the current working directory,
by checking if they are world writable or not. If /tmp is world writable
and the current working directory is not, the latter is chosen as a
temporary directory. This affects to behaviors of Tempfile and
Dir.mktmpdir. This is the reason that the spec context
"isolated enviroment" was actually not isolated on JRuby.

This is related to the following issue:
https://github.com/jruby/jruby/issues/405
Handle Rubinius dialect of NameError message
Fix "unable to modify frozen object" at splat expansion on Rubinius
Skip a broken spec on Rubinius

With rubinius 2.0.0.rc1 + rspec 2.13.1,
File.stub(:open).and_call_original causes SystemStackError.
Disallow failure of JRuby and Rubinius on Travis CI
Update version number to match CHANGELOG and rubygems.org
Merge pull request #279 from yujinakayama/fix-jruby-and-rubinius-build

Fix JRuby and Rubinius build