Breaks out widget into its own view and converts much of codebase to use requirejs