This diff introduces a new API for defining pipeline partitions.
The partition axis is completely disjoint from the scheduling intervals. Each ScheduleDefinition can now specify a `PartitionSelector` that can select a partition of the set of pipeline partitions for a given scheduled execution. This allows room for complicated logic (e.g. pick the next partition in reverse chronological order that does not have a successful run). It also allows for future plumbing to select multiple partitions, as long as they can be enqueued efficiently.
This diff does not generate config (TBD), but it does add a tag `dagster/partition`, for run grouping.