sync infogami.

changes:
* fixed error in calling store.query(.., limit=-1)
Fixed the case of loan getting into unloanable state when a waiting loan is expired.

Fixed it by updating the checkedout status and position in the WL for
each entry after marking a loan as expired.
Avoid saving documents if there are no modifications.
Using https URLs in OPDS feed.
Fixed OPDS crash due to XML incompatible characters in subjects.

XML cannot include certain characters mainly control ones with byte
value below 32. Solved the issue by stripping them.
Changes the base URL for api to https://openlibrary.org/
Sync infogami.

Changes:
* Added a way to specify full module name for plugins, instead of names and plugin_path.
Simplified the plugin loading system.

Now openlibrary/code.py is the entry point. More simplifications about
to come.