Notify on low balance

That's a quite big pull request, so probably cr-ing would be good
I like this.  I don't think it needs to be have 'Singleton' in the name, 'KeystoneClient' would be sufficient and it would be clear from the call that it's a singleton.  In the future, it might have normal methods in there in which case it would no longer be a singleton.

Also, read http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python - the answer there is pretty exhaustive.  I'm copacetic.