Work around TS type inference limitations
Slightly redefine ClusterServer so that handler argument inference is less
fragile. Previously we sometimes needed to cast handlers using
"as ClusterServerHandlers<typeof MyCluster>" because tsc was bailing
prematurely resulting in "any" argument types.
Added "static" test cases in ClusterFactoryTest.ts to cover.