determine concurrency (w an arbitrary time unit size, optionally grouped perhaps by resource?)
categorize activity (according to some kind of map or profile?)
fill in durations as a column, if start and end are provided
fill in end as a column, if start and duration are provided
on init, expects data (a DataFrame or collection that can be used to start one), and has kwargs to specify which column represents activity_start and activity_stop