Services: Fix an off-by one error when using the StartIndex arg with
GetRecordedList.

This also optimises things so that we aren't performing redundant
string/regexp comparisons after reaching Count.
mythburn.py: only use toprettyxml() in Python >= 2.7.3

There is a bug in older versions of that function which inserts additional
white space into text nodes causing problems when reading back in the
prettified xml file.
mythburn.py: fix another utcisoformat() missed in 45e62c8cb6
MythZoneMinder: actually tell us what the wrong data was in a log error message
mythzmserver: use the Sequence field to sort the monitor list

Also start to use a shared monitor list rather than requerying the DB
every time a list of monitors is required.
mythzmserver: add a GET_ALARM_STATES command

This command returns the alarm states of each monitor.

I've not updated the protocol version since it's just a proof of concept and
isn't used anywhere yet.
mythzmserver: use the shared monitor list in handleGetMonitorList()
mythzmserver: use the ADD_INT macro to cleanup sending int values
mythzmserver: fix a possible segfault if no event frames are found
Services: Add GetInputList() endpoint
configure: bump the minimum supported taglib version to 1.7

Version 1.8 or later is recommended but Myth will compile using 1.7 but
with reduced functionality.