added pagination mixin, separated abstract view from controller

Hi Roman,

When you get a chance could you look at this? I'm sure it will need tweaks before it is accepted.

 I made a lot of changes, most of which are pretty straightforward, but I completely changed the way the paginated widgets work, given that we aren't using the infinite scroll approach anymore, and I would like to get some feedback as to whether I did it correctly.

Changes:
- added an optional loading overlay function for widgets into the base widget
- added a master page manager with tests that keeps track of what is in the dom and auto-scrolls when pages change
- added pagination to the list widgets through a mixin that keeps track of the indexes of records given the start value (list of things widget and the widgets that inherit from it still needs tests, but the new pagination mixin has tests)
- improved css layout on abstract page 
- fixed random bugs, e.g. the citations graph issue, the fixed search bar at the top causing scroll issues
i think every page manager should be more flexible and discover list of regions/widgets from the template


```
regions = $.find('[widget="landing-page-manager"]')
_.each(regions, function(regionId) {
   if ($('#'+regionId) && self.widgetDict[regionId])) {
     $('#'+regionId).append(self.widgetDict[regionId];
   }
});
```

in that case, the manager just needs options with name of the regions and widgets