excalibur: Break into functions that can be called recursively. Add options for alternative dumps.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit f20703ae547f06ee72d341003cad137b170159a3)
excalibur: Bugfix.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit 7bfdc7156925667f07c908c4b877d71ca906ff7e)
excalibur: penis, request closing and cache clearing only need to be done once, for the most recent tick.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit 2728fe0cc3821c2cbf3c06d3fe61d91af244ed47)
excalibur: added dump options.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit ddf1a05ae3fbbbd96d54f12a8112756320687a32)
excalibur: bugfix.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit 25778743fa123862dceb56e99d8e99394c015592)
excalibur: Create dump directories before dumping into them.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit a02cc155f8e4049a0f2ce0c67ab62023cb566ffa)
excalibur: Made older-python-friendly. (Make fewer assumptions about errors)

Signed-off-by: Martin Stone <martin@d7415.co.uk>
(cherry picked from commit ff27d19caa7a4db4b44932c301a668bb68101b72)