Major Lookup class improvements.
1. Heavy improvements to the design, usability, and performance, and maintanability of the Lookup class.
2. Explicit loading functionality has been completely removed.
3. No project which requires the functionality needs to perform any initialization on the Lookup. This is cleaner, safer, and provides for transparent usage patterns.
4. Progress messages regarding any current loading operations are no longer returned via Tasks but rather can be processed by subscribing to two new event members of the Lookup class. Subscribe to ResourceStartedLoading and ResourceFinishedLoading with an EventHandler<string> where the string passed to the registered funtion is simply the name of the resource which has started or finished its loading operation.
5. All data sets now load Lazily. Specifically, the Lazy<T> class is now used to provide threadsafe on demaind initialization.
6. No data sets which are unused will be loaded.
7. Removed lots of semi redundant code having to do with creating, managing, and yielding Tasks which handled explicit loading of individual data sets.