Mega commit. Lots of different changes. List below

- Added index functionality to the gui.
- Added gui that can query clients and show results.
- cleaned up destruction of clients, gui and server to not crash on destruction.
- Added trackno to dmp_library::entry.
- Added the origin to the SearchResponse message.
- Added a boost::fusion dependant outputter that can write a fusion object to an ostream.
- Added generic callbacks class.