Replace underscore with lodash

Lodash gives us everything underscore does, but has more features. Underscore does what we want, but we need deep object matching for #101, and it is likely that we will be needing this for other things too.