Refactoring role spec stuff into a dedicated parsing class

Also reworking tests to cut down on the number of patches required
by sub-classing the DataLoader() class and reworking the base object's
structure a bit to allow its use