Rewrite of Giallo internals

Rewrite of Giallo internals, the code should be clearer about intention,
flow. Also enable cover, fix dialyzer
Add doc target and some minor doc cleanups