strict: change API to support fields with nil values
Previously, locked tables could not contain members set to nil,
since Lua is a bit confused about setting something to nil versus it not
existing at all.
Also all members are renamed fields, since "member" is an OO concept,
but the strict module doesn't particularily deal with objects.
The documentation was also slightly improved.
strict.unlock is now implemented, but still untested.