Made api more Ruby-like and fixed some bugs.

These are some changes that I made a while back. I thought the api was maintained by shopstyle, so I submitted the PR to the wrong fork. Here it is again.
There are several issues with this approach:
* Raising a string gives no programmatic way of rescuing shopsense specific errors.  If you are really intent on raising an error, at least create a Shopsense error type so it can be appropriately handled by the user of the api
* Raising an error indicates a *fatal* problem and unless rescued by the caller will halt execution!  This seems extreme because the user happened to pass the wrong filter type.

The approach I'd much rather see is the is the incoporation a [logger](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) into the application where a `WARN` log message is created upon invalid filter type to tell the user of the api what happened and `nil` is returned.