Rework internal role representation, strictly validate node roles (breaks lots of tests)