Add debug logging of RPC calls, results

Logging the RPC calls and results made can be useful when debugging
problems. This uses the standard python logging module; simple usage
to trace all RPC calls to stderr:

    import logging
    logging.basicConfig()
    logging.getLogger("BitcoinRPC").setLevel(logging.DEBUG)

Example logging output:

    >>> c = AuthServiceProxy("http://u:p@127.0.0.1:18332")
    >>> c.getinfo()
    DEBUG:BitcoinRPC:-1-> getinfo []
    DEBUG:BitcoinRPC:<-1- {"connections": 8, ...etc }

    >>> c.setgenerate(True, 2)
    DEBUG:BitcoinRPC:-2-> setgenerate [true, 2]
    DEBUG:BitcoinRPC:<-2- null

    >>> c.setgenerate(True, Decimal('2'))
    DEBUG:BitcoinRPC:-3-> setgenerate [true, 2.0]
    DEBUG:BitcoinRPC:<-- {"result":null,"error":{"code":-1,"message":"value is type real, expected int"},"id":3}
Better batch support

Replaces _batch method with batch_ method, which is passed
an array of arrays of form [ [ "method", params...], ... ]
and returns an array of results.

Any errors in any of the results throws an exception.
Merge pull request #38 from gavinandresen/better_batch

Better JSON 2.0 batch support