Implement unit test scaffold.

Reviewed By: @jwatzman

Differential Revision: D1724680

Signature: t1:1724680:1418080893:6f85e42ea320c5c21fd592eedcb822365cb7ed59
Split PrologMain into two files.

Summary: Similar to how we organize the other features -- separate the
I/O & formatting from the computation of the underlying data.

Reviewed By: @jwatzman

Differential Revision: D1724682

Signature: t1:1724682:1418083900:5b00dd6f89e64ea95ea7d504d63a191f48ef2e57