[MERGE #4408 @sigatrev] port ARM changes to ARM64
[MERGE #4408 @sigatrev] port ARM changes to ARM64

Merge pull request #4408 from sigatrev:port

PRs #3019, #3264, and #3509. These occured after the point where the ARM64 starting point was forked.

mrkmarron/ChakraCore,Microsoft/ChakraCore,mrkmarron/ChakraCore,mrkmarron/ChakraCore,mrkmarron/ChakraCore,mrkmarron/ChakraCore,Microsoft/ChakraCore,Microsoft/ChakraCore,Microsoft/ChakraCore,Microsoft/ChakraCore,mrkmarron/ChakraCore,Microsoft/ChakraCore,mrkmarron/ChakraCore