Optimize AutoContainer for fast initialization; add xml documentation

##### AutoContainer Optimization

Instead of eagerly (i.e. in the constructor) creating bindings for every type in a object's inheritance chain, most of which will never be used, create them lazily - when `CanGet(Type)`, `Get(Type)`, or `Get<T>()` are called, and only for the specified type.

##### Documentation

Fully flesh out xml documentation for the `IResolver` and `AutoContainer` types.