Add a new datastructure: FunctionMaps

FunctionMaps are maps based on functions. Basically, a function map is just a function from key to Maybe a value and a list of keys. This allows us to implement the usual map functions and also makes it possible to have infinite maps.
Some cleanup to the code of Core.Time
Update the schedule model and split common operations

Core.Schedule now only contains common operations and definitions for schedules.
The specific implementation of a schedule is now in Core.SimpleSchedule. There is a
little example under Playground/ScheduleTest.hs