Fix issue #38: broken defineProperty on Android 4 with .prototype

candidate for issue #38
add explanatory comment
make x be a function to trigger android defineProperty() bug

build: source is now several files
move header, guards to separate file
ensure header comment comes first
factor out Object.defineProperty guards
bump version
add mocha as devDependency
bump version
add tests and run them