Removes requires if they are not referenced in the ns anymore

- simple require
  [clojure.string] looks for clojure.string/
- :as keyword
  [clojure.string :as s] looks for s/ references
- :refer keyword
  [clojure.string :refer [split join]] looks for fn-s in the refer list
- prefix list optionally combined with :as and :refer
  [clojure string [set :as st :refer [difference union]]]
  looks for clojure.string/, set/ and difference, union fn-s
- keeps require flags if they are present

- not handling :refer :all (can't really do without repl or jvm)
  but keeps them intact
- does not keep the whitespaces, can be considered as a feature
  but defo needs improvement for more complex prefix list statements

- want to proceed with import same way
considers cljr-auto-sort-ns variable

- sorts ns declaration after removing unused requires if variable t
cleans, refactors code based on @expez comments

- simplifies branching on refer index (expez)
- uses tabless indentation (expez)
- moves indentation code after rectifying requires, outside dolist (expez)
- removes fn cljr--remove-required
- cljr--clean-request-element -> cljr--extract-sexp-content (expez)
- factors out cljr--is-name-in-use-p (expez)
- factors out cljr--rectify-refer-type-require
- cljr--handle-req-statement -> cljr--rectify-simple-req-statement
- cljr--handle-prefix-list -> cljr--rectify-prefix-list-req-statement
- cljr--test-require-used -> cljr--rectify-req-statement
fixes regression: readds cljr--remove-require
minor fixes and refactorings

- returns req as is if there is :refer :all in it
- keeps alias if used before :refer
- simplifes cljr--rectify-simple-req-statement
- adds autoload
- refactors cljr--rectify-prefix-list-req-statement
Merge pull request #34 from benedekfazekas/master

Removes requires if they are not referenced in the ns anymore