Return a Awesm::Url instead of nil upon failed requests.  Also fixed tes...

...ts.

I did this because Awesm::Url#create was returning nil whenever the request failed, which didn't give us any information with which to fix the problem.  Now we can catch specific errors or at least know what the error is.  

I also went ahead and did some refactoring to clean it up a little, and fixed the test suite.