copied underscore.js and tests from underscore.js