Rectify cassandra code

Unfortunately this did turn into quite a beast with a long diff. I'll try to break down what actually changed:
- I was primarily after a clean cassandra.Datastore interface incorporating the console.CqlModel stuff into something we could use for other tools if we wanted to. Moving the Model stuff into the cassandra package allowed sharing some code and I think will allow further sharing as we move along. I tried not to change more than I had to in putting this stuff together, so potentially more sharing and refactoring could still happen as we go.
- I also renamed a few things, in some cases for consistency (so the name used in intermediate structs matches the database somewhat) and also to match Go standards (ex. fully upcasing UUID).
- One functional change: I was split on how to do the interface for ListLinkHistorical, because it took seed/limit for paging but we didn't use the paging. I have doubts we will ever need to page the link history for a single link. I wanted to keep the interface clean and leave it out unless we knew we want to use it, but not throw away good code, so I left parts commented out so we can put the seed/limit back in if we want it.
- I had wished we could move all tests depending on cassandra into the cassandra package but I did not reach that goal yet, because the controller tests do.

My hope is that soon we can use a Mock to test the controller code instead of live cassandra data, if that is feasible.

Comments definitely welcome... I could've lost my mind here and there amid the mess.
Short struct name is strange, but I like ur choice since this struct will be used like

functionToCall(DQ{...})

Keeps that func call a reasonable length.