Includes some last minute changes too
The prototypes in the docs are rigged to make out the first parameter as mandatory (as it effectively is); however this does mean you've got to remember to update the prototype when you modify it in the code! :)
Conversion of all docs to reST so that the generic docs can link easily with the rest of the docs.