Fix bug in cljr--goto-toplevel

The parse state we rely on shows the depth in parens, which only
includes (), [] and {}.  This caused the function to malfunction when
point was inside a string.
Require clojure-mode

clojure-namespace-name-regex, used by cljr--goto-ns, is defined in
clojure-mode.
first draft of move-forms refactoring

The following features have been implemented:
- Move one form to a new ns.
- Move whatever is selected by region to a new ns.
- Fail if the selection is deemed to be unbalanced by paredit and make
sure we don't create whitespace errors in either buffers
- New home is found using find-file prompt.
- An attempt is made to do the right thing when we're updating the ns
declaration in the buffer we moved from.  At present this is limited to:
1) appending to an existing :refer vector 2) Doing nothing if :refer
:all is present or if the ns is imported and the user chose to prefix
instead of referring the moved vars.

This draft has the following limitations:
- There are no tests!
- When the ns is updated to refer/prefix whatever we moved
the current code doesn't handle [:as] or [:only] combinations
- The buffer we're moving stuff into might be left in a bad state
because its NS declaration is left unchanged.  For users of slamhound
this can be rectified easily.
Don't use (interactive "r")

This caused the fn to fail in a fresh emacs where mark was unset.  Using
region-active-p with region-beginning and region-end seems like the way
to go.
Remove uneeded code after cljr--add-ns-prefix change
Add basic test and make it pass

- Removed require-final-newline as it doesn't seem to impact the test.
- For the tests to pass I had to use (open-line 2) instead of 1, when
  appending to the destination buffer.  This results in two lines
  between defns when I try it locally, even with emacs -Q.  I have no
  idea what this is about.
Be smarter about modifying the ns when moving defns

Obviously easier to update the existing :require clause than to rebuild
it.  Don't code when tired, kids.
Change order of names in :refer clause created by move-forms refactoring

These now match the order they appear in the the buffer.
Tests with visual selection
refactor to use cljr--search-forward-within-sexp
Add cljr--search-forward-within-sexp*

This variant doesn't move point.
Add failing test