Added the `async` attribute to the script load

Since the page arrives pre-rendered from the server,
the script can be loaded asynchronously.
Added a means to add JS client-side components

Scripts in the app folder have to be node modules so
they can be executed client or server side.
JS scripts in the components folder are concatenated into
the output straight away.
Undid the inclusion of components

It is easier to simply include <script> tags in the template.
Changed the place where the IsoModules collection is declared

It is really not important but in the combined module it seemed
nicer to have the IsoModules collection declared just before it
is used in collection the modules names.
Switched to using the Tabs component

from https://github.com/eddyystop/mithril-components