Canon 2.0

**Work-in-progress branch for Canon 2.0**. Currently, I am in the process of creating a build skeleton. From there, we can begin porting patterns over one-by-one. As we port patterns, they should be reviewed to make sure they conform to the vision of Canon 2.0.