Account for missing credentials in boto config

Fixes #38.  If a boto config file has a Credentials section
but no actual credentials we move on to the next provider
instead of propogating an exception.

In addition to adding a test for this fix, I've also refactored
the unit tests for credentials, including:

* prefer unittest.Testcase.assert* assertion methods.  These give
  better error messages when an assertion fails.
* Use mocks to patch out os.environ.  The tests were just deleting
  all the pertinent environment vars in tearDown.  Now, for each test
  we patch out os.environ, and then restore the original os.environ
  dict when the test is finished.  This prevents global state from
  being modified from test to test.
* Removed code duplication by pushing common code into a base class
  setUp/tearDown as well as a path() helper function.
Merge branch 'issue-38' into develop

Closes #38

* issue-38:
  Account for missing credentials in boto config