The type of memory access is now determined from the instruction

Before this commit, HW BPs were set to catch writes only. Now they track
writes or both reads and writes, depending on the instruction.

Besides that, RaceHound now checks for each CMOVcc insn if it is about
to actually access memory and sets HW BPs only is it is. This prevents
potential false positives on handling of conditional MOVs that happen to
never access memory.
Track the access to dest of MOVS and CMPS rather than to the source

For MOVS and CMPS, the second access (the access to 'destination'
area) will be tracked rather than that to the source. That's easier
because the decoder actually reports the type for the access to the
destination. No need to adjust the access type.
Added description of one of the common use cases