adds semantic comparator to sort ns declaration

- sorts items closer to the current ns first
Fix #49

The problem was in the following clause:

(:use [payments.exceptions.http :only [unauthorised not-found
                                       forbidden internal-server-error]]))

The regexp matching this use clause didn't account for the newline
between the brackets.

Additionally we now indent the ns declaration after doing our work.
Fix #48: another bug in cljr-replace-use

Another problem where the regexp matches a variant not included in the
test suite.

I opted not to extend the regexp itself because it's hard
enough to \\(read\\)\\|\\(as it is\\).
Fix bug in move-to-let

cljr--goto-let was the problem here, as it simply picked the nearest
let-like form.

Closes #41
Refactor, introducing cljr--depth-at-point
fix move-to-let when inside let binding form

When inside the let body we should append to the let binding form. When
already inside the let binding form move-to-let should insert a new
binding just prior to the current binding to allow referencing.

Closes #30
cljr--project-depends-on => cljr--project-depends-on-p
Basic support for projects with only pom.xml

If there's a project.clj everything is as before, but if not we not look
for a pom.xml as well.

With the current feature set, this should be fine.
The only dependency on cljr--project-dir are cljr--project-file and
cljr--project-files where it's used to find the project root dir.  This
usage should still be fine.

The only function that actually uses the project file for anything is
cljr--depends-on-p.  At present this function simply does a string
search in the project file to match the dependency.  This usage should
work just as well for the artifacts in pom.xml files.

Closes #27 until somebody who doesn't use Leiningen shows up.
Add `cljr-cycle-if` to refactor between if and if-not