Fix profile edit pages. Non-STAFF may not edit any profiles but self (server-side restriction).

userID is now a checked optional parameter (if provided, updateProfile will use that userID. otherwise uses the currently logged in user).

Re-retrieve user profile after updateProfile call so the profile card is updated correctly.
Cleaned up the UI for staff edit student specifically, as well as all profile editing code and UI

Fixes an annoying bug where any submit button would submit the
previously opened profile modal (don't select on "[type=submit]" and
try not to add event handlers in a way that could be added multiple times.

Fixes spacing in profile card Edit Profile / Change Password buttons.