New rspec dsl

Support writing specs like this:

```ruby
describe '#name' do
  generate(:user) { User.new(first_name: string, last_name: string) }

  property 'concats #first_name and #last_name together' do
    user.check { |u| u.name.should eq "#{u.first_name} #{u.last_name}" }
  end
end
```