Deprecate auto-constructors, optimize function lookup.

Auto-constructors were a source of bugs, so they've been removed. There
is no default no-arg constructor from now on.

When calling 'new' on the wrong type, it'll no longer silently compile
and instanciate the wrong type, it'll yield an error.

A few new methods in MultiMap. HashMap now guarantees order by default.
MultiMap is used in Module for faster lookup.

More optimizations to come.