Replace user "status" with "availability"


Replace user "status" with "availability"

Ref T7707. Ref T8183.

  • Currently, user status is derived by looking at events they created. Instead, look at non-cancelled invites they are attending.
  • Prepare for on-user caching.
  • Mostly remove "Sporradic" as a status, although I left room for adding more information later.

Test Plan:

  • Called user.query.
  • Viewed profile.
  • Viewed hovercard.
  • Used mentions.
  • Saw status immediately update when attending/leaving/cancelling a current event.
  • Created an event ending at 6 PM and an event from 6:10PM - 7PM, saw "Away until 7PM".

Reviewers: chad, btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T8183, T7707

Differential Revision: https://secure.phabricator.com/D12833