switch to using a Makefile rather than a build script.
Added `is_sendable<T>()` intrinstic for introspection on T.

This is analogous to the `owns_managed<T>` intrinsic.  The goal in
this case is to be able to discriminate between ~T and ~[T] for T:Send
versus !T:Send, in order to maintain metadata for conservative
scanning (which AFAICT will need to extend outward from the
roots+stack to owned data in the exchange heap).

Hopefully we will eventually be able to do precise stack scanning, at
which time discriminating in this manner won't be necessary (or at
least we will not need to build up or at least use the metadata here).
But for a conservative stack scan, we need some way to track interior
pointers into, and the extents of, ~owned memory on the exchange heap.
checkpoint status.  does not build.