Checkpoint towards Invitation Links

There is now a concept of "Internal Properties" -- if a Property has the
InternalProp meta-property set, it shouldn't be visible in the UI.

Introduced the Identity object.

Added Thing.firstOr(), which lets you specify a default, and ifSet(),
which lets code quickly check a YesNo.

Introduced the IdentityLink method, which Email Messages can use to
embed an invitation to use Querki.  (Does not fully work yet.)

Introduced the ExternalLinkType, AKA URL, which is exactly what it
sounds like -- a type that only accepts valid URLs.  Enhanced the QL
parser so that they work just link internal links in expressions.

Wrote the first-draft Hasher, which will be used at least to hash
invitation links.
We now actually send Invite Links

They don't work yet, of course, but one problem at a time.

Introduced the Config system.
Checkpoint: towards Identity login
Identity Login is now working!

Many changes to page-rendering, to deal with non-User Identities.

Cleaned up a bunch of the session-interpretation code in Application.

Introduced the ability for Modules to make changes to the Session.

Added the ChangeProps message to Space, to make more targeted changes.