Add AMD - Asynchronous Module Definition support with RequireJS

This branch adds AMD - Asynchronous Module Definition support with RequireJS with the purpose to prepare the application for Javascript loading and optimization. It also makes possible next refactoring to Angular Asynchronous Loading technique.