Add support for optional namespaces

This is a PR for #23. I couldn't attach this PR to that issue, so I had to create a new PR.

This is just my initial stab at it. I think my test coverage makes sense, but I don't actually need this feature, so it could definitely use a review by someone who does.

If this implementation makes sense, I'll update the documentation as well. In my implementation, I created a `WeaselDiesel::Params::Namespace` class that contains a name and options (currently, only a `null` attribute). I'm not entirely sure that the `space_name` attribute works to describe the params namespace now that it's more than just a string.

`wd-sinatra` will also probably need a patch so it can generate the correct documentation for this feature.

Let me know what you think.

FYI: Travis CI fails due to a top level array spec failing. This fails in master as well, so it shouldn't be caused by my branch.