SI-4684 Repl supports whole-file paste

Add a file argument to the :paste command which loads the
file's contents as though entered in :paste mode.

The :paste command is replayable.

Samples, including companions defined together:

```
scala> :paste junk.scala
File contains no code: junk.scala

scala> :paste no-file.scala
That file does not exist

scala> :paste obj-repl.scala
Pasting file obj-repl.scala...
<console>:2: error: expected start of definition
         private foo = 7
                 ^

scala> :paste hw-repl.scala
Pasting file hw-repl.scala...
The pasted code is incomplete!

<pastie>:5: error: illegal start of simple expression
}
^

scala> :replay
Replaying: :paste junk.scala
File contains no code: junk.scala

Replaying: :paste obj-repl.scala
Pasting file obj-repl.scala...
defined trait Foo
defined object Foo

Replaying: Foo(new Foo{})
res0: Int = 7
```
SI-4684 Repl supports raw paste

By special request, :paste -raw simply compiles the pasted
code to the repl output dir.

The -raw flag means no wrapping; the pasted code must be
ordinary top level Scala code, not script.
Merge pull request #2725 from som-snytt/topic/repl-paste-file

SI-4684 Repl supports whole-file paste (rebased)