zpmlib: add ZPMException class

This is useful for generic ZPM exceptions which need to be
differentiated from even more generic exceptions, like RuntimeError.
miniswift: rename _swift_url to _swift_service_url

Due to how this is used on other parts of the code, this help make the
content of this variable explicit. It's not just a "swift url", it is
specifically "the url of the swift service", given to us by the Keystone
service catalog.
miniswift: stop searching once swift srvc is found

When we retrieve the service catalog from Keystone, we do a linear
search through the catalog in order to find the swift service. Once we
find the service, there's no sense in continuing to search through the
rest of the catalog.

This change simply adds a `break` in the loop to accomplish that.
miniswift: raise if no swift service is avail.

In the SwiftClient class, it would seem kind of point to allow the
`auth()` process to look for a swift service, not find it, and then
carry on like everything is okay.

This change asserts that if there is no swift service available, we
raise a `ZPMException` immediately.
test_miniswift: add tests for SwiftClient.auth()

This brings `miniswift` test coverage to about 69%. It's not great, but
it's an improvement.
Merge pull request #66 from larsbutler/miniswift-refactor-and-test

miniswift: refactor and test