Added a mechanism to define DSL extensions

This pull request defines a mechanism to load extensions into BuildFlow plugin, without polluting the namespace.

With this change the user would write something like this:

    def x = extension.foobar
    def y = extension."external-resource-dispatcher"
    
    x.anotherMethod()
    println y.someProperty

The backend is an obvious implementaion based on `ExtensionPoint` and `@Extension` like everywhere you see in Jenkins.