Variant on hand tracking

Uses a field not required by this extension.

variant.reason is used to relay humanized stock movements back into the
hosting app.  A log_changes method is used to store these in a separate
table (to be implemented by developer)