Use new ruby_parser 3 and friends

Removes ripper_ruby_parser as a dependency, and the code that implements
choosing the parser implementation.
Fix MethodContext to work with ruby_parser 3

Fixes MethodParameters#default_assignments:

Default assignments are now done in-place for each argument, instead of
in a separate block at the end of the argument list.

So, for example, instead of this:

  s(:args, :arga, :argb, :"&blk",
    s(:block, s(:lasgn, :argb, s(:lit, 456))))

We now get this:

  s(:args, :arga, s(:lasgn, :argb, s(:lit, 456)), :"&blk")
Fix TreeDresser to handle ruby_parser 3's parse results

- Fix MethodNode#arg_names and MethodNode#parameter_names

  These were broken because the default argument assignment no longer
  happens in a separate sexp at the end of the argument list.

- Fix CallNode#arg_names

  The arguments of a :call node are no longer contained in an :arglist
  node, but are just listed at the end of the :call node.

- Fix IterNode#parameter_names

  The :iter now has the arguments listed in an :args node instead of a
  :lasgn or :masgn node.

- Make DefsNode and DefnNode return the correct method bodies

  These bodies are no longer contained in a wrapper node, but instead are
  just listed at the end of the :defs or :defn node.
Fix spec to reflect improved line information given by ruby_parser 3
Fix Duplication smell detector to work with ruby_parser 3

Fixes check for :attrasgn node without arguments. Such a node no longer
includes an empty arguments node.
Fix LongMethod smell detector to work with ruby_parser 3

- Fix statement counting inside singleton methods, method definitions,
  and :when nodes
- Spec existing behavior for counting statements in a block
Fix SimulatedPolymorphism smell detector to work with ruby_parser 3

Fixes the check for a `block_given?` condition: the sexp for this
condition no longer contains an :arglist node.
Fix UncommunicativeVariableName smell detector to work with ruby_parser 3

- Check all argument names in a given block
- Report on block parameters outside of method definitions
- Properly handle splatted block argument names
- Report correctly on nested block parameters
- Handle deeply nested block parameters with splats
Update cucumber scenario and step to work with ruby_parser 3

- Adjust step definition to use of RubyParser on Ruby 1.9.3
- Fix sample output to match changed results from ruby2ruby