newdb: Fix replacing formats in a book creating orphans

When replacing formats in a book with a very long title+authors on
windows, newdb could leave behind the old format file, because the
filename shortening algorithm has changed. Handle that case.
newdb: Fix timezone problem in custom column date edit widgets

Fix a regression that could cause the dates in custom date-type columns
to change in some timezones when using th edit metadata dialog to make
unrelated changes. Fixes #1217096 [After updating metadata (i.e. new cover) home made date column (YYYY) is adjusted too](https://bugs.launchpad.net/calibre/+bug/1217096)

Merge branch 'master' of https://github.com/cbhaley/calibre
Move delete to recycle bin into a separate process on windows

This will hopefully fix any remaining locking errors on windows.
Move apsw_shell.py as the build system does not support modules in src/

And I have better things to do than fix and test the build system.
E-book viewer: Indicate if a KF8 file is a joint MOBI
Update Daily Mirror
Fix #1217623 [Set Undefined 'date'](https://bugs.launchpad.net/calibre/+bug/1217623)
...
newdb: Speed up multisort() by lazy evaluation

The sort keys for the sub-sorted columns are now only evaluated on demand.
The common case is that the keys from the first column will differ,
therefore we can speed up sorting on average by delaying evaluation of
the sort keys for the second and later columns, only evaluating them
when the sort keys of the first column for a particular book differ.
The gains will be particularly noticeable for columns where calculating
the sort key is expensive, like composite columns or the series column.
VFR Magazine by Krittika Goyal
...