Various refactoring towards the new state machine. Lots still not working
Override tests to be run with TEST_FILE
Passing tests, still a little rough around the edges
Broke out updating state and added event history for generating HIT/MISS header info
Added state machine compilation tests and removed runtime assertions
Use ngx.DEBUG for state machine info
Put esi into transitions
Convenience function for has_esi()
Clarified serving_not_modified by exiting with a status (not strictly serving)
Better documentation for state machine
Tidy up
Fixed bad ESI detection logic, which made turning ESI on for non ESI resources slightly slower