Fix broken tests and make pkcs1 ready for Python 3

1) Some of the automated tests runnable via `python setup.py test` were broken, because a keyword argument `mgf1` seems to have been renamed to `mgf`. I fixed this by updating to the new keyword argument in the function calls.

2) `pkcs1.keys` and `pkcs1.primitives` had a circular import dependency (i.e. `keys` imported `primitives` and `primitives` imported `keys`). When running Python's `2to3` tool on `pkcs1`, this resulted in the following lines in `keys.py` and `primitives.py`, respectively:

```python
from . import primitives
```

```python
from . import keys
```

Relative circular imports are buggy in Python < 3.4 and raise an `ImportError` (see http://bugs.python.org/issue13187). In order to make `pkcs1` runnable on Python 3 (using `2to3`), I therefore broke the circular import. I achieved this by moving the function `generate_key_pair(...)` from `pkcs1.primitives` to `pkcs1.keys`.