Crash application if memory is corrupted

This pull request throws exception when we detect the memory is potentially corrupted. The verification is enabled through compiler flag HEAP_VERIFICATION.

Running ProtoTest gets a bunch of memory exceptions. So of them probably is false positive, need to investigate them. 

@lukechurch, @junmendoza please review the change. 
Im ok with hash defs since they are localized only to the Heap.