Fix Darwin host identification

This PR should replace hardcoded kernel architecture for Darwin iOS with real architecture detection.
Also kernel bitness should be fixed for Darwin iOS.
Additionally `SysInfo::GetKernelBitness` and `SysInfo::GetKernelCpuFamily` now cache values instead of detection each time.
OS X detection was checked locally, iOS detection should work according to http://blog.timac.org/?p=907 and [source code of `NXGetLocalArchInfo()`] (http://www.opensource.apple.com/source/cctools/cctools-855/libmacho/arch.c).
It wold be great if some darwin dev will be able to check it on real Arm64 device.

@Memphiz @jmarshallnz ?