Using py3k, among other things.

* Fixed 2to3 errors
* Added function annotations
* `util.link()`