Update to project structure:

Modify object inheritance.
  For some reason LuaJIT did not like nested metatables, so I've changed
  inheritance to simply copy function keys from base to subclass.

Create new global modules: System, Rules, Game.

Add LuaFun dependency for more addvanced functional programming idioms.

Add a number of new functions.

Remove obsolete modules: shape.

Remove obsolete examples: constants.