Made RegressionStrategy.scala and Indicators more modular

Our code works and runs to create a graph for both ShiftsIndicator and RSIIndicator. Developer should be able to extend BaseIndicator to implement new feature, though there are still some issues remaining. The major ones are:

FBIC-3 Make params to RSIIndicator a case class
FBIC-9 metricsParams are always from emptyStrategy, should be from RegressionStrategy
FBIC-11 fix the difference in graphs of ShiftsIndicator, apparently, the coefficient vector comes out different
FBIC-16 abstract the max period of indicators -> firstIdx = getMaxOffSet() + 3 in createModel
FBIC-19 shouldn't need to loop through indicators, use mapping function
FBIC-22 Document RegressionStrategy
FBIC-26 Implement a new indicator to see how well our class works

We still have some work to do so we don't expect this pull request to be accepted. Hoping this serves as a brief code review. Please comment on any issue you can and looking forward to what you have to say!


Same, onCloseWindowSize should not be passed by user. The indicator should be able to decide how much onCloseWindowSize it needs.