table: new insert method.

* specs/table_spec.yaml (insert, len): Specify behaviours.
* lib/std/base.lua (insert, last): New functions that
respect `__len` when calculating table length.
(len): Use callable to extract __len metamethod.
* HACKING: New file to document coding style and design choices.
* lib/std/base.lua, lib/std/container.lua, lib/std/debug.lua,
lib/std/io.lua, lib/std/list.lua, lib/std/optparse.lua,
lib/std/strbuf.lua, lib/std/string.lua, lib/std/table.lua,
lib/std/tree.lua, lib/std/vector.lua: Follow HACKING rules for
use of len and insert.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>