Add a lifecycle state machine for Document

This CL adds a linear state machine to the Document to ensure that it follows
an orderly progression through its state machine. The plan is to use this state
machine in https://codereview.chromium.org/24976002/ rather than asking the
render tree whether the document is active.

R=eseidel
BUG=299011

Review URL: https://chromiumcodereview.appspot.com/25036004

git-svn-id: svn://svn.chromium.org/blink/trunk@158503 bbb929c8-8fbe-4397-9dbb-9b2b20218538