Refactor DeclarationId
Make use C++11 union (saves around 8 bytes per instance)
Differential Revision: https://phabricator.kde.org/D322