Supports adding getters and setters to functions. Fixes #506

This will have some negligible performance impact as it adds __newindex and __index checks to all function property calls (__index already existed due to .prototype).