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 ;)
why only `__init__.py` in that case? why would the name of a module matter? (in that respect, the current filtering based on whether the module name starts with `_` is in fact very wrong)