Fix manifest segment hiding

the hide-part-dir feature tries to hide a large file manifest's
segments, but it only supports hiding a very specific segment
format (segments in a sub-directory). Segments can have any kind of
prefix and don't have to be in a sub-directory:

http://docs.openstack.org/developer/swift/overview_large_objects.html

Also, if the manifest filename matches the subdirectory name then the
object becomes completely unlisted and unavailable for download.

This commit fixes the hide-part-dir feature to support these other use
cases.

It does not currently support automatic deletion of segments outside
of a subdir though. Supporting this properly is tricky due to the
assumptions made throughout the code about prefixes only being for
subdirectory lookups. It should be possible to add later though.