Parameter checking and filling in TODOs (acme.py)

Here are corrected parameters and type checking for `acme.py` as far as I can discern them.

I tried unit testing some of the other `*_request` methods, but they need real crypto examples.
I was thinking of extracting the calls to crypto into another module (maybe `acme_crypto` or into `crypto_util`), and making `acme.py` strictly about generating compliant api calls. Thoughts?
"Object type comparisons should always use isinstance() instead of comparing types directly" (PEP8). Use `isinstance(name, unicode)`. This applies to the whole PR.