Refactor and re-enabe unittest to prepare for some speed optimisations

Preparing to make CCM fast enough for https://github.com/quattor/ncm-query/pull/5, came to the conclusion that CCM needed to run all unittests first.
`else` and `elsif` in the same line as the closed curly braces. (K&R are always right)