return a new function for each getter

- defines the getters onto a proto
- the function returned has its __proto__ set to our proto

fixes #32
dont use slice on arguments

~21% increase with multiple arguments