Work around broken Open3 on JRuby 1.7.16
Add JRuby and Rubinius to Travis CI config
Allow any Ruby 2.1 on Travis CI
Refactor SmellWarning.
Merge pull request #320 from troessner/issue-support-more-rubies

Support more rubies
ModuleInitialize smell - having initialize in mixin is bad idea
Merge pull request #321 from troessner/refactor-smell-warning

Refactor SmellWarning.
Merge pull request #318 from troessner/module-initialize-smell

ModuleInitialize smell
Use parser instead of ruby_parser for parsing

Because parser is currently under more active development and has less
parsing bugs, switch from ruby_parser to parser for parsing the Ruby
code to be investigated.

This has several consequences:
- Flay depends on ruby_parser. To avoid confusion due to ruby_parser
  being available during tests, removes flay as a dependency
- Source code formatting is done with unparser. Unparser tends to
  produce multi-line source for blocks and if statements. These are now
  post-processed to fit one one line, with intermediate lines replaced
  by ellipses.
- Unparser version 0.1.16 does not work on MRI 1.9.2. Support for that
  version of Ruby is therefore dropped.
- Parser uses a different AST with different node types, so all smell
  detectors and sexp extensions have been updated to match.
- Parser uses immutable objects to represent its AST. This means our
  TreeDresses has to create new objects while processing the AST, rather
  than extending the existing ones.
- Parser outputs comments separately from the AST. This means
  TreeDresser now also adds the relevant comments to each node.
- Detection of some smells has improved.
- Reek enforces parsing with parser's 2.1 syntax parser. This is not a
  problem for the kind of use reek has for the AST. Reek also blocks
  parser's warnings about possible syntax differences between Ruby
  patch versions.