OEB Reader: Properly serialize OPF using utf-8 when reading metadata

HTML Input: Handle malformed OPF files when converting.  Fixes #1215924 [Mobipocket conversion fail with error TypeError: Invalid input object: NoneType](https://bugs.launchpad.net/calibre/+bug/1215924)

When reading metadata from OPF files during conversion, the OPF was
serialized in ascii with no encoding declaration which could break for
some bad OPF files.
Details on how to add formats to an existing book
PocketBook driver: Scan for books files in the entire device not just in the 'books' folder