CLJS-496: better implementation of `char`

Stop relying on `goog/isNumber?`, implement `number?` as an inlining
macro in core.clj, use it in core.cljs. Change `char` implementation
so that it uses `String.fromCharCode` if given a number. It simply
returns strings of length 1. On any other type of input it throws an
exception.