New POM template & script for deployment to Sonatype

Necessitated by changes to the Sonatype Nexus server at
oss.sonatype.org.

Hopefully this will make it possible to have completely automated
releases of ClojureScript on the Hudson server at build.clojure.org.
Release Nexus staging repository during release build

This makes the process of releasing artifacts to oss.sonatype.org
completely automatic, requiring no human intervention at all. It is
only intended to be used on the continuous integration server at
build.clojure.org.
CLJS-533: call tests for :import in the test runner

Also includes a fix for a broken test.
CLJS-531: Supply missing argument to repl/load-stream in rhino.clj
Optimize count for arrays and strings, fix bug in nth incorrect
handling of IIndexed on native types
fix typos
CLJS-530: Skip metadata maps in ns forms
CLJS-534: use ternary satisfies? in chunked-seq?

This restores support for custom chunked seq types (benefiting
core.rrb-vector) while preserving good performance of comprehensions
in the non-chunked case.
CLJS-541: Fix macro arg eval orders
CLJS-538: implement IReduce for cljs.core.ChunkedSeq

This makes sequences over vectors use ci-reduce over a subvec.
CLJS-544: named fn self reference lexical scope issue

named fns were passing along raw names instead of the name var map
which includes shadowing information. this meant that during
emission the name of the fn would not match the name that would be
emitted inside for self reference.

We now construct the name var map and set the :name field of the
fn AST appropriately.
Update to latest Google Closure library & compiler in POM
Update version strings in Google Closure release scripts
Update dependency versions in script/bootstrap

Also factor out repeated version strings as variables.

* Clojure 1.5.1
* data.json 0.2.2
* Google Closure Library 0.0-20130212-95c19e7f0f5f
* Rhino 1_7R3
Working clojure.tools.reader with passing tests
implement IReduce on more ISeq types
CLJS-545: use caching-hash in cljs.core.Symbol
fn arity warnings should be enable by default
CLJS-454: Allow nanoseconds in fractions part of instant literals

This patch mimics the clojure reader which truncates the fraction part to 9 digits (i.e. nanoseconds). This patch truncates to
milliseconds (3 digits). Note that this patch also fixes three other bugs:

* CLJS-564
* The clojure reader reads "#inst \"2003-12-10T00:00:00.4\"" as #inst "2003-12-10T00:00:00.400" but the clojurescript reader (prior to
this patch) reads the same string as #inst "2003-12-10T00:00:00.004"
* #inst tests generated bad test data
CLJS-567: Optimized ClojureScript reader by switching to a more performant StringPushbackReader. Added another reader benchmark which reads a substantially bigger datastructure.