Param whitelisting

This pull implements parameter whitelisting as laid out in proposal "A" in issue #22.  This does not implement all of the validation functionality outlined there (just whitelisting) though it's my intent to implement all of that subsequently.

Here's an example of how it's currently working.

```ruby
class Signup
  include Lotus::Action
  params SignupParams

  def call(params)
    puts params.class # => SignupParams
  end
end

class SignupParams < Lotus::Action::Params
  param :first_name
  param :last_name
  param :email
end
```

I thought it made sense to implement a subset of the functionality and get feedback on the general approach (and to make sure I haven't run afoul of any of the project's norms.)   Also, this provides a useful feature sooner than later!

I see there's been additional conversation in the issue about how this all should work, so I don't know if this work is relevant or not.

I welcome your feedback!
Here's my thinking:

`params` is the DSL which is meant to be used by the caller.

`params_class` is there because I've used the Default Value Pattern there.  Whenever I use this pattern, I also provide a setter because I want folks who come along later to know they should never be accessing the instance variable directly.

Having said all of that, I will change this if you feel strongly. :smile: