Added spa.shell.js module and spa.shell.css and refactored spa.js and spa.html to use them