Add the option to look for history from (mark).

The behaviour is controlled through slime-repl-history-use-mark -- when
nil, the original history replacement is done.

* Add a `slime-repl-history-yank-start' function that returns the
  furthermost position from (mark) and the start of the current input.

* Replace input from slime-r-h-yank-start instead of the beggining.

For example:

> CL-USER> (foo (bar :baz 23))
> 42
> CL-USER> (let ((x **C-SPC** (foo **M-p**
>         ;; will replace from `(foo' to yield:
> CL-USER> (let ((x (foo (bar :baz 23))