Refactor `defspec` impl to avoid repeated re-defs in ClojureScript.

The prior approach was producing undefined function references in
:advanced-optimized JavaScript, perhaps due to fn references going
stale in the _ClojureScript_ compiler...?