TimeTable slots List -> HashMap

this way we can get the correct slot easily if we know it's row and
column, and for example do this:
    timeTableSlots.get(new Coordinate(col, row)).addActivity(stuff)

also, fixed logic bug: slots are now populated before course modules
are loaded into them
adjusting graphical looks

drawing borders to indicate cell/slot boundaries etc
diary update