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.
RequireJS cannot work with automatic Angular bootstrap (see https://docs.angularjs.org/api/ng/function/angular.bootstrap)