decouple server protocol

Summary: 1. Inline HandleMessage into HackProgram
2. Move HackProgram out of ServerFunctors into its own file
3. Unfunctorize ClientCheckStatus command

ServerMsg protocol is assumed throughout, which makes this
simplification no less general. HackProgram was already in
the wrong place, and this enlarges it, so moved it out now.

Reviewed By: @gabelevi

Differential Revision: D1421302