Refactor and re-enable 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.
Ecipse's auto-formatting sucks. Please use

```perl
unless (flock(FH, 2)) {
...
```