CLJS-418: Add g-closure-library dependency on third-party

This adds a dependency from the google-closure-library on
google-closure-library-third-party to resolve CLJS-418.
Revert "Warn on invalid js forms. refs #455"

This reverts commit b2df2c2a69a4f1c9be8d698b74122c98b1e22491.
link to community run user list
Added comparator function
Updated implemented functions
CLJS-470: fix `resolve-var` (.contains s ".") case

The issue was that `defprotocol` in the core.clj macros file emits
the native type dispatch cases with `foo.-bar`, `resolve-var`
would treat this as normal var resolution which it is not - use of
the `.` in symbols without a namespace clearly represents some
kind of interop or implementation detail.

`resolve-var` no longers warns on symbols that include `.` but not
`/`.
CLJS-418: Update POM template to new G.Closure release
move simple-keys? test out of the analyzer into the compiler
Symbol deftype

Added Symbol deftype. Added INamed protocol. ObjMap no longer applies
to symbol at the moment. Fixed emission for symbols. Update name and
namespace fn to check for INamed protocol. Symbol support metadata and
included symbol metadata.
add array-map benchmark, switch to direct protocol calls in PersistentArrayMap
Prune code by delaying make-hierarchy invocation.

Causes compilation of a near-empty .cljs file to shrink by 984 bytes.
add obj-map benchmarks, add -lookup benchmark for array-map
significant improves to PersistentArrayMap, on V8 PersistentArrayMap
is now faster than ObjMap for 1 & 2 keys, and only slightly slower for
3 keys. PersistentArrayMap map is 10X faster than ObjMap for assoc
1, 2, 3 new keys.
cleanup PersistentArrayMap perf enhancements
benchmark Symbol construction. Make hash code computation for Symbols lazy.
more cleanup of PersistentArrayMap enhancements
add small map update in atom benchamrks, these are slow
add apply benchmarks, demonstrate that list construction is horribly
slow and apply to construct list is worse.
refactor IndexedSeq, rename a field to arr
make missing protocol errors more informative, include the type name
if the type is a ClojureScript type.