Rewrote Controller lib to no longer depend on __invoke() magic and instead use an interface. To still allow callables (Closures, functions, etc) a wrapper is added for those.