* refactoring, including a generic solution for IDs

git-svn-id: https://vcmi.svn.sourceforge.net/svnroot/vcmi/trunk@3183 4dfc6b2a-8b31-0410-aa91-d6c70e3ac834