Currently, initialising from a mode is done by looking at the keywords
arguments that were passed and seeing if mode was part of them. For
some reason, this causes a segfault under PyPy (my fault, probably),
so let's switch to check based on whether the mode argument was
initialised. To do so, switch the type of mode to int and the Python
format char, since the 'H' is defined as "without overflow checking"
anyway, so we don't get any real checks. Document that invalid values
will cause errors.