Allow user to specify own escape-chars

The current set of metacharacters that are escaped when rendering are
based on Java's Pattern implementation, which for the purposes of this
library, is basically PCRE.

However, different regular expression implementations sometimes have
different pattern metacharacters. Vim's very-magic mode, for instance,
reserves all [^a-zA-Z0-9_] ASCII characters, while POSIX basic regular
expressions¹ do not use (, ), ?, +, or | (these must be preceeded by a
backslash to attain their now familiar meaning).

This patch adds the :escape-chars option to pattern and string-pattern
to allow the user to specify this set of metacharacters. The value of
:escape-chars may also be a key in the (public) metacharacters map.

The actual implementation is done through a dynamic var, following the
precedent of *capture*.

¹ Note that we must also allow the user to control the characters used
  for capturing/non-capturing groups, alternation, optional matching,
  etc, in order to make frak work for POSIX BREs
Migrate to tools.cli

optparse-clj was merged into tools.cli for v0.3.0.

cljs.tools.cli does not build with current deps, so we update both
lein-cljsbuild and add an explicit CLJS dep (as recommended by
lein-cljsbuild).

Note that this new version of CLJS does not have cljs.core/format.
Add -E/--escape-chars cli option
Merge branch 'public-escape-chars'

* public-escape-chars:
  Add -E/--escape-chars cli option
  Migrate to tools.cli
  Allow user to specify own escape-chars