Refactored the matching step into nscale-docker-analyzer.

This change removes the need for most of the docker-specific code in the kernel.

However still a few references remains:

```sh
$ grep docker lib/*
lib/api.js:            _sr.writeTimeline(user, systemId, 'build', 'built container: ' + specific.dockerImageId);
lib/api.js:            _sr.commitRevision(user, systemId, 'built container: ' + specific.dockerImageId, json, function(err) {
lib/semver.js:    _.each(system.containerDefinitions, function(cdef) { if (cdef.type === 'docker') {
```

@pelger do you think these are removable? Or are we leaving those for a later fix?

I don't get `lib/semver.js`.