Add turnip style step definitions

First stab at an implementation of turnip style StepDefs prompted by the [discussion](https://groups.google.com/forum/#!searchin/cukes/turnip/cukes/0j_5u9zkZng/1rbOOVDzHMcJ) on the mailing list.

A couple of questions

* Should we deprecate the old `$placeholder` style in cucumber ruby?
* Do we want to add turnip style custom placeholders - or leave people to rely on Transforms?
  * If we add custom placeholders, they should only affect turnip style stepdefs and Transforms only operate on RegexpStyle stepdefs - (I think this is the way to go)
Turnip doesn't do that: https://github.com/jnicklas/turnip/tree/master/#placeholders

I see where you're coming from, but I think there could be some potential for confusion with it?

A step is executed in the world context. If you named a placeholder the same as a method you've mixed into the world which takes precedence.

How likely is it someone could override a method from the world?

I think it would be interesting to see how it worked.

I suppose we could pass in a hash of step args? Potentially making that world method?

This could work with named matches in regexps too?

```ruby
Given("there is a monster called :name") do
  step_args[:name]
end

Given(/^there is a dragon called (?<name>.+)$/ do
  step_args[:name]
end
```