Add maxlag support, move GetToken to own file

Added a maxlag field to Wiki, which contains a struct (also called
maxlag). This struct is used for configuring maxlag.

Made a breaking change to New: added several maxlag parameters.
NewClient wraps New and disables maxlag.

Implemented support for maxlag in Wiki.call. Most of the previous code in
call has been moved into a closure, and some logic has been added
outside the closure to handle maxlag.

GetToken has been moved to edit.go.
Append maxlag param to end of query.

As per https://www.mediawiki.org/wiki/API:Edit#Parameters:

"Especially if you are not using the md5 parameter, the token should be sent as the last parameter, or at least, after the text parameter, to prevent a bad edit from getting committed if transmission of the body is interrupted for some reason."
Rename Wiki to Client, export some stuff

"Client" just makes more sense than "Wiki" for the state struct. I've
kept the name "w" for receiver in Client methods.

The HTTP client in Client has been renamed to httpc.

The maxlag struct (now Maxlag), its fields, and the maxlag field in
Client are now exported.
Add Client method GetPage

In preparation for Edit()---usually one wants to modify a page's
content, not just replace it with something.
Fix maxlag support

The maxlag code in Client.call() didn't actually do anything (I don't
know what I was thinking when I added that code). However, now it does
properly add the maxlag parameter to the URL. To ensure that the maxlag
parameter is the last in the URL, the URL is now encoded using
URLEncode() from the new file helpers.go. URLEncode() is a modified
version of Values.Encode() from net/url that adds maxlag as the last
parameter when applicable.
Add Client method GetPageID

GetPageID gets the id of a page by name via prop=info.

Changed the 'pageid' parameter in the Client method GetPage to 'pageID'
for consistency.
Fix URLEncode to encode token, not maxlag, last

I somehow confused myself into believing that the 'maxlag' parameter
should be the last instead of the 'token' parameter.
Add Page type, fix GetPage to return a *Page

Instead of making GetPage return another value, I've made a Page struct
containing two fields: Body and Timestamp, which GetPage now, if the
request is successful, returns.

The Timestamp contains the timestamp of the latest revision to the page,
and it should be passed as a parameter in any edits to detect edit
conflicts.

The diff looks dramatic because I moved GetToken to the bottom of the
file.
Rename NewClient to NewDefault, update README.rst

NewDefault seems like a less confusing name, especially with the recent
rename of Wiki to Client.