Restructured the cache use case to be a better implementation
The cache use case now updates a CacheStockInformation entity instead of maintaining a state. This removes the need for a view model and presenter for the use case.
The DashboardInteractor now observes the entity for property changes and then grabs new stock price information when the cache refreshes.
Also restructured dashboard Output data to use HashMaps instead of parallel lists. This method is more error-proof, since maintaining parallel lists caused bugs in the past with misaligned stock prices.
Restructured the cache use case to be a better implementation