Abstract class for RL Agent

tested 10,000 times
each RL implementation will just extend `RLAgent.java` and implement a few abstract methods.

changed `Action`, `State`, and `Point` to extend `DataPoint`