Introducted IPagedList for simplified paging and changed the GroupList p...

Added one more method to the repository to enable easy paging
```
public virtual IPagedList<T> GetPage<TOrder>(Page page, Expression<Func<T, bool>> where, Expression<Func<T, TOrder>> order)
        {
            var results = dbset.OrderBy(order).Where(where).GetPage(page).ToList();
            var total = dbset.Count(where);
            return new StaticPagedList<T>(results, page.PageNumber, page.PageSize, total);
        }
```

Updated the service layer to use the new repository methods
```
public IPagedList<Group> GetGroups(string userId, string filterBy, Page page)
        {
            switch (filterBy)
            {
                case "All":
                {
                    return groupRepository.GetPage(page,x=>true,order=>order.GroupName);
                }
                case "My Groups":
                {
                    var groupsIds = groupUserrepository.GetMany(gru => gru.UserId == userId && gru.Admin).Select(gru => gru.GroupId);
                    return groupRepository.GetPage(page, where => groupsIds.Contains(where.GroupId), order => order.CreatedDate);
                }
                ...
                default:
                {
                    throw new ApplicationException("Filter not understood");
                }
            }
        }
```

Updated GroupList page to use it. Much less javascript code, just one line now to have clean ajax paging.
```
<div id="GroupPagingContainer" class="span11" style="margin-top: 10px;">
        @Html.Partial("_GroupsTable", Model)
    </div>
<script type="text/javascript">
    function LoadGroups() {
        var url = "/Group/GroupList?filterBy=" + $('#filteredby').val();
        $.get(url).done(function(html) {
             $("#GroupPagingContainer").html(html);
        });
    }
</script>
```

Setup Automapper to map Paged Lists of models.
```
Mapper.CreateMap<IPagedList<Group>, IPagedList<GroupsItemViewModel>>().ConvertUsing<PagedListConverter<Group, GroupsItemViewModel>>();
```

Used PagedList.MVC to rendering paging controls. Use the Ajax rendering option so that a partial is called and rendered in place.
```
@if (Model.GroupList.Any())
{
    <table class="table">
        @Html.Partial("_GroupsTableRows", Model.GroupList)
    </table>    

    @Html.PagedListPager(
        Model.GroupList,
        page => Url.Action("GroupList", 
                new { page, filterBy = Model.SelectedFilter }),
                PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions { UpdateTargetId = "GroupPagingContainer" })
        )
}
else
{
    @Html.Partial("_AlertInfo", "No groups found");
}
```
Sorry not sure why its saying I'm modifying the whole file, I've only adjusted a few lines in the Repo to add one new method and in the group service I just adjusted the one method. Maybe out linefeed settings are different.