Pointer slot update

This breaks the implicit conversion back and forth between std::shared_ptr<T> and Autowired<T>.  This is necessary because it's possible to perform adjustments to the contents of an Autowired<T> which may not be thread safe.

- [x] Update AnySharedPointer with new overrides as needed
- [x] Refactor DeferrableAutowiring to inherit AnySharedPointer
- [x] Refactor AutowirableSlot to make use of inherited AnySharedPointer
- [x] CoreContext needs to be aware of and make use of the new features in AutowirableSlot