Update docs on accessing registers while executing.
Optimize event dispatch so we don't always allocate a Task.
Add a Core.ValidInstruction event.

Also expand a bit on the docs.
Wrap RWLockSlim locks/unlocks in try-finally.
Remove redundant namespace identifier.
Code cleanup suggested by ReSharper.