improvements to RequireFile

Also check that file is writable. Adds a the decorator [1] module (single file) in extern to preserve function/method docs and signatures.

A few unit tests have been included.

[1] https://pypi.python.org/pypi/decorator