Action Aware params

In CRUD operations, this pattern occurs quite often: params that need
to be set are:

* for create action: `required => true` and `allow_nil => false`
* for update action: `required => false` and `allow_nil => false`

This makes it hard to share the param definitions across theses
actions. Therefore, you can make the description a bit smarter by
setting `:action_aware => true`.

```ruby
def_param_group :user do
  param :user, Hash, :action_aware => true do
    param :name, String, :required => true
    param :description, :String
  end
end

api :POST, "/users", "Create an user"
param_group :user
def create
  # ...
end

api :PUT, "/users/:id", "Update an user"
param_group :user
def update
  # ...
end
```

In this case, `user[name]` will be not be allowed nil for both
actions and required only for create. Params with `allow_nil` set
explicitly don't have this value changed.

Action awareness is being inherited from ancestors (in terms of
nested params).
Merge pull request #100 from iNecas/action_aware

Action Aware params