IncEpoch should use CAS for epoch check

1. cleanup panic: use log.Fatal in most cases for clear output in failure.
2. IncEpoch race: the check doesn't guarantee consistency. It should use CAS. A better solution, though no written here, is to use the version we get from the response.