Accessible Introduction to Software Transactional Memory (STM)