Sort of hacky initial implementation of contracts.  The contract decorator doesn't work too well on modules.  It works when it's included in a class but gives a StackOverflow when included in the interpreter directly.
Fixed the problem with including from main.
Merge pull request #5 from isupeene/contract_decorator

Contract decorator