Switch to Lo-Dash

This PR replaces Underscore with Lo-Dash.

Lo-Dash has lots of features Underscore doesn't, and unlike Underscore, Lo-Dash is tested in Node.js, follows semver, and is now downloaded more on npm than Underscore and has well over a thousand other npm packages depending on it.