add avail_subclasses function + unit test

ported from `avail_easyblocks` method in `easybuild/tools/options.py`, required for https://github.ugent.be/hpcugent/easytest/pull/1

let's see what @stdweird has to say about this one, because I'm fairly sure he's the original author ;)
it doesn't return a list. maybe it should be an ordereddict though? there order could be relevant eg parenting relation (if not, dict is fine)

can you check if EB ever uses `multiple base_classes` and multiple `package_names`? if not, i'd rather have this single `base_class` and `package_name`.