use abstract SlmQueue/Controller/AbstractController
refactor to use a controller factory
review feedback changes (most notably exceptions)
Merge pull request #17 from basz/fix/utilize-abstract-worker-controller

use abstract SlmQueue/Controller/AbstractController