makes filter-keys-by-val 9% faster by using into, similar to other fns in ns

(require 'criterium.core)
(require 'useful.map)
(def my-map (zipmap (range 100) (range 100)))

(criterium.core/bench (useful.map/original-filter-keys-by-val odd? my-map))
Evaluation count : 3415500 in 60 samples of 56925 calls.
             Execution time mean : 17.583266 us
    Execution time std-deviation : 124.371912 ns
   Execution time lower quantile : 17.425613 us ( 2.5%)
   Execution time upper quantile : 17.898538 us (97.5%)

Found 2 outliers in 60 samples (3.3333 %)
  low-severe   2 (3.3333 %)
 Variance from outliers : 1.6389 % Variance is slightly inflated by outliers

(criterium.core/bench (useful.map/filter-keys-by-val-with-into odd? my-map))
Evaluation count : 3778800 in 60 samples of 62980 calls.
             Execution time mean : 16.009860 us
    Execution time std-deviation : 89.880836 ns
   Execution time lower quantile : 15.875754 us ( 2.5%)
   Execution time upper quantile : 16.219088 us (97.5%)

Found 2 outliers in 60 samples (3.3333 %)
  low-severe   2 (3.3333 %)
 Variance from outliers : 1.6389 % Variance is slightly inflated by outliers
makes filter-vals and remove-vals 3x faster

(require 'criterium.core)
(require 'useful.map)

(def my-map (zipmap (range 100) (range 100)))

(criterium.core/bench (useful.map/original-filter-vals my-map odd?))
Evaluation count : 2203320 in 60 samples of 36722 calls.
             Execution time mean : 27.389858 us
    Execution time std-deviation : 206.895390 ns
   Execution time lower quantile : 27.186863 us ( 2.5%)
   Execution time upper quantile : 27.997736 us (97.5%)

Found 3 outliers in 60 samples (5.0000 %)
  low-severe   1 (1.6667 %)
  low-mild   2 (3.3333 %)
 Variance from outliers : 1.6389 % Variance is slightly inflated by outliers

(criterium.core/bench (useful.map/new-filter-vals my-map odd?))
Evaluation count : 6759300 in 60 samples of 112655 calls.
             Execution time mean : 8.949856 us
    Execution time std-deviation : 39.725387 ns
   Execution time lower quantile : 8.882420 us ( 2.5%)
   Execution time upper quantile : 9.032029 us (97.5%)
Fix a couple of bugs in key-comparator

and add two tests that fail without the fixes.
Memoize a bit more of the expensive work in dispatcher
Add useful.seq/groupings
Inc version
Update testall alias to match clojure version
Support complex bindings in let-later
Make let-later more readable with a letfn
Fix typo
Fix typo
Remove vile useful.core ns
Make merge-sorted work with no sequence-args.

Useful if you want to do something like (apply merge-sorted < (foo)),
where (foo) might return an empty list.
Make merge-sorted as lazy as possible
0.10.2, with fixes to merge-sorted
Add increasing, increasing*
Better implementation of increasing*
0.10.3, with seq/increasing
Fix docstring for pluralize

The function is named pluralize, not plural.
Version of compare-bytes that does unsigned comparisons.

Could use some more work to speed it up; I've had a heck of a time
getting clojure to do primitive math on byte objects, and it's very
wasteful to: box to Byte; check it's a Number; convert to Long;
unbox to long; do math; downgrade to byte; upgrade *back* to a long;
compare with (long)0.