Hash errors are now PANICs instead of ASSERTs.

Asserts were wrong in this case since we want these error
checks in release builds since hash tracking is now a valid
concept in release not just debug.