Document and optimize the new FSMLockMixin code

* _do_update now always calls the parent method, corner cases
are now handled implicitly.
* field name used as a key to initial states instead of field
Merge pull request #49 from knaperek/master

Document and optimize the new FSMLockMixin code