Add PhutilLunarPhase, for computing phases of the moon

Summary:
Ref T603. This seems good enough to produce the same answer as asking a layperson "does the moon look full?".

(Enables implementation of phase-of-the-moon policy controls.)

Test Plan: Unit tests.

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T603

Differential Revision: https://secure.phabricator.com/D7216