Create a new macro-based Application interface.

This closes issue #2, although the implementation differs quite a bit from the
proposed one:

We basically have the interface hase.Application, which just makes sure the API
user doesn't forget about mandatory functions.

The interface's builder macro will then populate the interface with the contents
from complex_fields in AppBuilder.create_basefields() and if there are any
collisions, it will notify the user by throwing an exception.

Our implementation actually has two ways to be called:

 * With a pre-existing canvas element using YourApplication.from_canvas().
 * Using YourApplication as a -main class and thus filling the whole page.

Of course there is room for improvement, but for now, this should simplify
building basic HASE applications a *lot*.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
example: Use the name "example" consistently.

We used "hase.js" as the JS output and Main as our main class, so this should
rename everything to the example or Example.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>