Prevent blank records from being added to DB

Some blank records were slipping past our checks in updateRecord(),
because the type-equality comparison (using ===) was false for
those blank records. Using == doesn't work either, but using
JSON.stringify() does.
Fix password changing

Class names were inconsistent with the rest of the code, and the
PasswordModel.php classes weren't using PHP namespaces. Fixed.
Use UserService instead of JSON-RPC directly

Password changing now uses the UserService controller instead of
calling the JSON-RPC function directly.
Fix double-submission of form

Fixes #23
List view paging now handles deletes correctly

By shifting the list view paging variables (currentPage and
itemsPerPage) to the parent scope (the controller) instead of
keeping them in the list view scope, we can track the current
page through list view refreshes even when it's the controller,
rather than the list view directive, that's triggering the
refresh. Now when a record is deleted, or a new one is added,
the current page in the list view can be maintained.
Add ability to only force a DB reload when needed

Now when paging through the list view, a DB reload will not be
triggered every time the user changes pages, but only when data
has actually changed and the view needs to be refreshed.
Add "items per page" selector to list view
Update list view's page count programatically
Fix initial page load of list view

List view was loading at page "0" during Angular initialization.