feat(injector): implement a different approach to injector scopes

An easy way to review this is to read the tests and see if that's what we want
Can you change this fancy indentation to:
```js
var a = b;
var c = d;
var e = f;
```

I know we use this in Angular codebase, but I prefer this old-school style, it's much easier to add new var or re-order...