Code plugin: new architecture

Note that I had to change the navigation
Enables the old keyboard functionality by setting the keyboard controls and scope when the plugin is rendered.
Removes ambiguousness from truth check in JS. The route method will only be invoked in case of a state change (new page view) so we don't have to check against previous state to see if we should save the crumbs or not.
Improves logic for replacing of plugins as well as removes the need for boiler plate code from related future PRs.
Merge pull request #370 from typesafehub/wip/code-plugin-rework-keyboard-bindings

Enables the old keyboard functionality by setting the keyboard controls ...
Merge pull request #371 from typesafehub/wip/code-plugin-rework-layout-fixes

Wip/code plugin rework layout fixes
Acebinding refactoring then fix surroundings
Merge pull request #372 from typesafehub/wip/code-plugin-fix-memorization

Acebinding refactoring then fix surroundings
Enables setting line focus to 0
Merge pull request #374 from typesafehub/wip/code-plugin-rework-line-focus-0

Enables setting line focus to 0
Merge pull request #368 from typesafehub/wip/code-plugin-rework

Rework of the code plugin to fit the new structure