OS X: Fix restarting of calibre not working if calibre.app is placed in a location with spaces in the path
Fix #1366889 [ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters](https://bugs.launchpad.net/calibre/+bug/1366889)
Performance improvements:
- Add an option to booklists to not check for duplicates if the device knows there aren't any. Eliminates N squared lookup times.
- Make the wireless device driver use the above option.
- Change a comprehension to use a generator instead of a returned list of keys.

FWIW: found these because a CC user has 18,000 books on his device!
Performance improvement again: don't change an existing method's signature.
Merge branch 'master' of https://github.com/cbhaley/calibre
Start work on new cover generation framework

Text rendering works using Qt's text layout engine which should
automatically support RTL languages, fallback fonts, etc.
...