Refactoring (read detailed explanation)

First of all, API.call() has been refactored. Instead of trying to
suppress exceptions, it is now happy to raise an exception (of type
ConnOrJSONError) if it encouters a HTTP or JSON error. It also detects
MediaWiki API errors and if there is one, it will return this (as a
dict) as the second element in the tuple it returns. The first element in the
tuple will be the entire API response (also as a dict), including the
error dict. This new design (despite the exceptions) is a vast
improvement over the old design, which was abhorrent.

API.login() has also been changed, but not very much and mostly to make
it compatible with the new API.call().

The mwreq.ConnOrJSONError exception has also been added. This exception
is supposed to be raised instead of requests or simplejson exceptions,
as handling these in mwreq clients will require importing requests
and/or simplejson into these clients, which is annoying.
Updated README.rst for v0.3.