Enumeration classes shared one static variable which caused sharing data. Main problem was with conflicts in names. This commit divides enumeration into "namespaces". Used namespace is return value from "get_called_class()" function.
Classes UserRoles and UserStates are now using new BaseEnumeration class.
This commit moves list of user roles into separate class (with own namespace), so we can access this data anywhere from application.