Call VirtualProtect() only once

The call to VirtualProtect() is kind of expensive, so don't do it
every time the hook is re-installed.

This makes public and native calls about 6.5 and 13 times faster
respectively (#96 and #95).