Remove unused and not working code

* Implementations of LsDupes and UpdateIndex were very hacky and are now
  outdated, remove them
* Eliminate a ton of compiler warnings for unused code
Re-implement "dupe add" using a free monad

* Seems like a good abstraction for the kind of actions we need to perform
  to interact with the store for duplicates
* Currently only have a fixed debug implementation that prints to the console
** Future check-in to create proper implementations
Alias "dupe" command to also work as "dupes"
Dupes: Use LevelDB interpreter for actions

Currently everything is done in terms of the StoreOp free monad, making
it simple to create a new interpreter which is backed by LevelDB

* Switch "dupes add" to use the new interpreter
Dupes: Increase perf by opening the db only once for each arg path

* Previously the db was connected to for each add,rm, or list operation
* Separate turning the free monad actions into db actions from their eval
* Allows a single db connection to be used to run an entire set of actions
* Massive performance increase
Safe refactorings and cleanup