Adds Plugin Events for Patient Portal Appointment Requests

Plugins can now listen for and handle patient portal appointment request events, enabling scheduling rules. Scheduling via the portal is currently in beta.