licq: Move upgrade function to separate file
api: Include owner id in Licq::UserId

To support multiple owners per protocol, the protocol id can no longer
be used to uniquily identify which owner a user belongs to.
This also guarantees that each user id is unique even if the same
contact is added for two different accounts.
licq: Move user data files into subdirs per owner

User files for each owner is placed in users/<owner>.<ppid>/ so files
will be unique even if multiple owners exist with the same user added.

Note: The condition for performing the upgrade is the Licq version
number in licq.conf. As the dev version in git master is already set to
1.8.0, people already running with this version must edit licq.conf
manually to a lower value (for example "1079") before running Licq to
trigger the upgrade to be performed.
licq: Move history files to users dir
licq: Do owner data migration in big upgrade
licq: Migrate users.conf with big upgrade
licq: Save owner in onevent configuration
licq: Use protocol name in filter config
qt4-gui: Save owner id with floaty configuration
rms: Save owner id in configuration
forwarder: Save owner id in configuration
api: Replace LICQ_PPID with ICQ_PPID
Use full owner id where possible
api: Remove redundant isOwner from UserManager
icq: Move IcqUser and IcqOwner to daemon

Due to the virtual inheritance dynamic_cast must be used which requires
the vtables to be present in the daemon so GUI can find symbols even if
the ICQ protocol isn't loaded.
icq: Move code files from daemon to plugin
icq: Build as protocol plugin

- Remove hacks to build and run ICQ from within daemon
- Add files to build ICQ as an Licq protocol plugin
- Add migration code to automatically load ICQ on first run