Add support for saving / restoring shared memory.

Summary: Subsequent commits will hook this up to a command-line option.

Reviewed By: @jwatzman

Differential Revision: D1610700
Add ability to save and restore server state.

Reviewed By: @jwatzman

Differential Revision: D1610805
Simplify Program.serve()

Summary: `report` is never modified in the current code, so there is no way
the panic can get triggered.

Reviewed By: @jwatzman, @elgenie

Differential Revision: D1613871
An async method's return annotation (if there is one) must be "Awaitable"

Summary: This takes the first step for improving return type enforcement for async
functions. We enforce that if there is a return type annotation, it must be
"Awaitable" or "Awaitable<T>".

This diff also adds some missing plumbing for return annotations for
closures and lambdas.

Reviewed By: @elgenie

Differential Revision: D1610520
Just use rpoSortCfg() instead of layoutBlocks()

Summary: Vasm ultimately does its own block layout, so just use a simple
rpo traversal to get the reachable blocks.

Reviewed By: @jdelong

Differential Revision: D1618096