Add support for files that depend on commands and vice-versa.
Add support for files that depend on commands and vice-versa.

Add featuring allowing the server to tell the client to retry certain
commands on the next request. The "need sum" mechanism is used to do the
same thing for files, but as commands have no original content saving
mechanism we have to have an explicit feature for retries. The server
needs this if it is unable to generate all of the prerequisites for the
command, usually because the command depends on a file for which the
server needs original content info.

Modify generate_file and generate_commands methods to return a value
indicating the status of the generation. Thus if either is called due to
a dependency the caller knows whether it should proceed with its own
generation, or tell the client to retry next time if one or more
dependencies fail to generate due to a need for original content info.
generate_file previously pulled this info out of the @generation_status
hash, but it seems preferable to use a return value.

In generate_file, if a dependency fails to generate don't explicitly go
through the dependency tree and filter/need_orig each dependency. Each
file where that is necessary has already handled itself, and it's fine
if the client goes ahead and writes out other parts of the tree.

Fix bug in generate_file, we need to return the (filtered) config for
files which failed to generate due to a dependency failure, as the
config may contain setup entries.

Fix bug in xmlremove where it was calling the wrong REXML method if
asked to remove an element from a document (as opposed to another
element). The method call that was being used didn't generate an error,
but also didn't do anything. This in turn meant that
filter_xml_completely! was a no-op, which meant we were sending back
unfiltered configs when we meant to send back just depend and setup
entries.


etch/etch,etch/etch,etch/etch,etch/etch,etch/etch