Module: Add a new module definition

This new module definition is meant to replace what we already had,
because, let's face it, if our original goal was to replace the mess
make made, our old structure wasn't a whole lot better.

The new format can't be used yet. Future commits will fix this.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>