Make programmes objects rather than lists

Rather than lists of lists of modules, programmes are now objects
that can have additional properties.

The list of lists of modules is now in the 'years' property.
Add option to hide required modules
Merge pull request #2 from HackSoc/required-modules

Required modules