WL-2347 create a site calendar if it doesn't exist yet

The signup tool currently depends on the calendar for a site being already
initialised by the calendar tool. When the site calendar is initialised by
adding the tool it checks to see if the calendar is already defined for
that site and if it is, it opts to use that one.

In fact when the calendar tool is removed, the site calendar is left there.
So there is little harm in initialising the calendar early, namely once the
signup event is requested.
WL-2347 Throw less exceptions

Now that we handle the case that resulted in a `IdUnusedException`,
there's no need to throw it.
WL-2347 Update comments and exceptions for calendar errors

Now that the calendar tool not being enabled is not a concern, the error
that might occur in fetching the calendar is more generic now. Almost
certainly a permission error.
WL-2347 Update warning message for when the calendar is unvailable

Now that the calendar tool is not required the error is more general,
almost certainly a permissions issue.
WL-2347 Document the case when getting a calendar returns `null`
WL-2347 Tidy up exception handling for calendar permissions
Merge pull request #10 from ox-it/WL-2347

WL-2347 Set up the site calendar if it doesn't already exist