Don't use M2Crypto for cloudfront URL signing

As far as I can tell, with the exception of some things in contrib, the only reason M2Crypto is a requirement of boto is to be able to sign URLs of CloudFront content. Since I want to be able to sign URLs, but don't want to have to yet another compiled dependency, I took a stab a replacing M2Crypto in cloudfront.Distribution._sign_string with a pure-python equivalent: [rsa](http://pypi.python.org/pypi/rsa).

I tried to keep this scoped in as much as possible to replacing M2Crypto with rsa. I see a couple of unit tests that can be written as well, but they can/should be a different pull.