More thorough debugging
Better checking for invalid 8bit data
[mms] Horde_Imap_Client_Base#getNamespaces() now returns Horde_Imap_Client_Data_Namespace objects instead of an array.

Start moving some code from Horde_Imap_Client 3 that is not BC-breaking
* [mms] Horde_Imap_Client_Base#getNamespaces() can now return a Horde_Imap_Client_Namespace_List object instead of an array.

Might as well go all the way with 2 layers of object abstraction. Allows
us to move things like namespace detection directly into the return
object, instead of requiring calling app to deal with it.

Make this 2nd layer optional, however, since it is conceivable that
calling code would use something like array_keys() on the output (as
opposed to individual namespace, where array keys were meant to be used
as data labels, not iterable keys).
Fix typo
Add 'base' property to Namespace Data object
Use Horde_Imap_Client_Namespace_List object return
Optimization: If searching all mailboxes, no need to add individual namespaces to the query
Add stripNamespace() method to the Namespace data object
Directly use Horde_Imap_Client_Data_Namespace objects