Turns out the DBIC likes _id, not _no.

ID sounds like it implies some sort of actually-managed sequence that
might even be globally unique, at least for items of that type. Not just
a convenient surrogate key.

The docs say with the experimental v8 naming, I can use _num. So,
actually, just swapped _no -> _num. Extra letter, but whatever.

Also, call it a "house number" not a "street number", to avoid
confusion.
Fix nullability of passes.passholder_num.

It was previously declared NOT NULL ... ON DELETE SET NULL which is
rather nonsensical. The intent is that if a passholder is removed from
the system, the knowledge that a pass number has been used should stay
(to avoid re-use). So it needs to be nullable.
Add sample data of a pass with a NULL passholder.
Give streets a surrogate key as well.

DBIC was having fun at my expense since I didn't have one. Don't feel
like figuring out a better way.

I refuse to call it street_num, because that's confusing as #@!(*#.
Instead, call it street_ref.
Other docs said to use this magic boilerplate.
Look up by pass number now works. Mostly.

TODO: Calculate age group. Of course, there isn't schema for this data
yet...