[SPARK-2988] - Port repl to scala 2.11.

Why do we need to port the repl for scala 2.11, especially when scala repl has class based wrappers ?

We need to do this, because they are not sufficient for our needs. Also scala repl does not allow us to plugin our own wrappers and access mechanism. Because most of the things in repl are private and can not be inherited. So only choice left was to copy the code in to our code base and make adjustments. The reason class based wrappers are not sufficient is in short "directly importing the created objects by import wrappers results in recreation on remote nodes". So we import by first referring to them as `INSTANCE` in the object. Please take a look at the patch for more details.