DependencyInjectorGenerator: reified extensions

1. Introduced reified extensions
2. Replaced extensions accepting varargs with ones
that accept single reified argument (it's looks more concise)
Minor, removed Contract from deparenthesize

and added some asserts
Removed redundant call v.done() in ClosureCodegen

It should be called by super.done()