This PR refactors and reorganizes a lot of code. It attempts to organize
things in a way that allows to keep more things private. Conversely, it
made the fields of many data-only structs pub and removed the creator,
accessor, and unpack methods for those.
The PR deliberately avoid any functional code changes given that due to
its sheer size, it is essentially unreviewable.
This is also why it stopped short of re-organizing the structure of the
actual server, ie., the Krillserver and the daemon::http module which
currently have a rather blurry distinction. A follow-up PR will create a
more clear separation but this requires code changes.
Done:
* api client introduced
* code can do a list and parse the json response
Todo:
* Token validation on API
* Synchronise directory
* Binary for api client
* Format output for client (text/json/none)
* Cleanup, most notably move http client code into util for re-use.