- dedupe.c was not looping over the entire range to dedupe so what would happen is the
  kernel would only dedupe it's maximum set and then dedupe.c would return a
  succesful dedupe.

- In order to fix this I did away with the filerec array we store on the
  dedupe context and instead link filerecs directly onto the context. They
  exist on one of three lists, depending on their state in the dedupe
  process.

- Added a large chunk of (expensive) debug code for dedupe.c, it can be
  enabled at build time (make CPPFLAGS=-DDEBUG_DEDUPE)

- This all fixes bnc#871804
- change drastically how we print to the user. Much of this was inspired by
  conversations in bnc#871804 where I realized that duperemove is somewhat
  misleading in what it prints to the user.

- The new wording gives a better idea of what's going on and I took out some
  useless prints.

- Also the table of dupes is prettier now.
- remove unused function