Add 'criticctl listusers' for listing all registered users

The 'listusers' command takes a --format argument which takes one of the
following values:

 - "tuples": List user data as a python-parseable list of tuples
 - "dicts":  List user data as a python-parseable list of dicts
 - "table":  List user data as a human-readable ASCII table
criticctl adduser: Allow empty password on command line
When changing password, current password may be empty
Check proper UID after calling setuid() instead of checking UID == 0 before

This allows us to run criticctl as the 'critic' user, instead of needlessly
enforcing 'root'.
Merge branch 'admin_fixes' into cisco_changes