Add some basic tests and hook nose into setup.py
Add the 'status_code' attribute to the APIError exception if it's available
Refactor request mechanics into an internal method on BaseService
Add .travis.yml