Overloading for Python 2

This request fixes bug #12 by introducing the `typing.annotations` decorator that adds Python 3 compatible to Python 2 functions. The `__annotations__` attribute set by the decorator is then used for implementing `typing.overload`.

This PR is based on top of PR #28 that fixes tests for Python 3.3 and 3.4.
Missing `]` in `Iterable[int`.