Rework module system to support extensions and main module

Create a root module with no id and no parent. This module contains the
module cache.

After executing all tabris.load() functions, load the main module from
the package.json if it exists. This is a preparation for replacing
index.json with the standard package.json file. However, with this
change it's already possible to load the application's main module
from a package.json's main field instead of the index.json. In this
case, the tabris.load() function must be omitted.

Change-Id: I17c637da90b972a55df05ed62ef9735321ab5898