Error handling and destroy unwanted params

Hey man

I'm a developer for [Wakame-vdc](https://github.com/axsh/wakame-vdc) and [OpenVNet](https://github.com/axsh/openvnet). We'd love to use sinatra-param but we were missing a few features. Namely we'd like to be able to do our own error handling and we'd like to be able to throw away any parameters that were not explicitly defined. I quickly took the time to code those features in for you. We'd be delighted if you could merge this. If you have a problem with some of my code, please let me know and I'll see how I can improve it.

I also included specs and updated the readme to include the new features.