Allow import statement and other top-level constructs

To inject DSL into the script being parsed, the common technique used elsewhere (for example in Spring bean builder Groovy DSL) is to set the DSL object as a delegate. This avoids the need to do string manipulation, and there's no ExpandoMetaClass hack necessary.

I'v moved the bindings to FlowDelegate. This resolves the conflict between "build" as a variable and "build" as a function (since binding gets found more quickly it tries to evaluate that variable as a Callable), and it'll also make it easier for people to find all the available DSL methods/variables in one place.