Refactored platform specific code from core.clj and lang.clj into platform.clj.