Apply patch for better error handling.

https://github.com/ipwnstuff/shodan-ruby/commit/45fcbd1840808cb2c116a6ed05f2f24caf2c4a77
Add some tools for creating the gem
Add DataError exception
Add APIDataError, so we can tell the difference between data and network
errors.
Re-raise the correct exception.
Merge pull request #1 from Lookingglass/api-error

Mo' Better Error handling