Using Hardware Memory Protection to Build a High-Performance, Strongly-Atomic Hybrid Transactional Memory