Don't use Q_WS_XXX defines as they don't exist in qt5. Always use Q_OS_XXX.
A Url class to make it easy to write code that builds on qt4 and qt5.
Separate the QObject and QSharedData classes. For no other reason than multiple inheritance makes me nervous.
Fix Url encoding.
More fixing!