catch and report XML in the XML ParseError
add SortedDict.__getslice__()

It's nice to think of SortedDicts as sorted lists.  Which means one
should be sliceable.
fix subcmd_batch_del(), using SortedDict slices

subcmd_batch_del() was sending the entire remote_list() as a single
batch delete operation to S3.  That fails for >1000 objects, though we
were ignoring the fail.  It also can timeout uploading a huge list
(one example was deleting 40k objects; a 7MB deletion list XML) and
trying to churn through it.

The whole looking for a marker bit was poor.  We have the remote_list,
we just couldn't slice it up.  The previous commit adds the getslice
operator, so now we can.  This greatly simplifies the delete operation
as we can iterate over slices of 1000 until it's empty.