Detect if an agent is running via tty/terminal interface.

This allows better output to the user, ie. when there is a syntax error or missing input file,
allow the user to correct the error rather than falling to failsafe.

Better response for missing input file, while in tty_interactive mode.

Provides the user with the name and path to the expected input file and then exits,
allowing the user to correct the error. Does not fall back to failsafe.

Moving tty_interactive logic into GenericAgentConfigNewDefault, and refraining from creating
a new hardclass 'tty_interactive' at this time.

Making GenericAgentConfigTTYInteractive static

Minor changes to declaration.
Put check_writable_by_others in GenericAgentConfig, small cleanups
Merge remote-tracking branch 'shauna/cleanup-interactive'

Conflicts:
	libpromises/generic_agent.c
	libpromises/generic_agent.h
Pull escape conditions out of functions in generic_agent

CheckPromises, ReadPromises, VerifyBundleSequence, CompilationReport
Remove globals IGNORE_MISSING_BUNDLES, IGNORE_MISSING_INPUTS

Moved into GenericAgentConfig.

These are kind of interesting flags in that the evaluation
mechnism is actually controlled in policy itself. So now we have
sort of evaluation state in GenericAgentConfig, which is not ideal.
Should probably just be deprecated immediately and replaced by
flags to the actual programs.