Remove abstract module 

Rename every abstract class as follows: 
`Abstract.X -> X.AbstractX`
e.g.
`Abstract.Plot -> Plot.AbstractPlot`

The exception:
`Abstract.PlottableObject -> Core.PlottableObject`
For this PR's sake, we should keep this to be LinearScale.

From a docs perspective, I feel that LinearScale semantically flows better.