Make environment object available in DSL

The previous way of accessing through the _ locals object felt hacky. Since the
env object is pretty dumb (good dumb), making it into a Struct and exposing it
to the DSL feels better. This was users can interpolate env.name into their
config.

The previous conditional env method has been changed to env?, which makes more
sense anyway.