feat(Query): Add Query API

This PR can be finished only after https://github.com/angular/di.dart/pull/180 makes it into DI and Angular, but it is ready for review. 

Currently
1. There is no way to set the depth of the query. All of them have the depth DESCENDANTS.
2. There is no way to specify the type of the queried component. 

These are API limitations. The implementation itself is fairly complete. 

Depends on #1441
We should be consistent with `Visibility` (which has DIRECT_CHILD & CHILDREN IIRC)