Re-implement UserEdit using Model/View paradigm to resolve various problems
with the old implementation.

- Added UserListModel.h/cpp as the backend for protobuf UserList editing
- Added UserListFilterProxyModel for filtering and sorting
- Re-implemented previous functionality in new environment