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.
a more comprehensive improvement to list construction performance. Add
benchmarks.
add experimental support for ^not-native type hint. In the presence of
this type hint all protocol fns on the hinted symbol will be directly
dispatched under advanced compilation.

Update list fn to use this when dealing with non IndexedSeq case (for
apply). We see a minor perf boost from this.

Add some more apply benchmarks.
another ^not-native type-hint, perf boost for IndexedSeq case (normal
invocation) and apply case when given given IndexedSeq
unroll update-in, add update-in benchmarks, add -seq on vector benchmark.
if -seq is called on PersistentVector w/ cnt < 32, return IndexedSeq
for now. In theory ChunkedSeq should be as fast but it requires more
work. This a big perf boost anywhere -seq is called on
PersistentVector such as idiomatic use of apply with vectors and
update-in where the key list is written as a vector.