Added PortfolioController

The idea of the PortfolioController is to allow the project
to scale so that we can run different portfolios on different
threads at the same time.

TODO: Add thread-level parallelism to run()