allow block sub types (refs #197, #198)

Besides defining just one type, blocks can define several sub types.
This is used to ship slightly different test blocks (exams,
practices and selftests). Defining sub block is optional. By default,
blocks will still just define one block type.