Module for overloading functions (with type checking) in python 3.3+