This branch introduces API redesigns/re-implementation, specifically:
Introduce three data types: Units, Measures, and SetUp variables
Updated the API to follow more OOP conventions so that measures must be declared through a unit. This enables us to enforce more valid programs/declarations at the API level, effectively enforcing automatically/removing the need to manually check for data measurement relationships between units and measures (was previously another step of compilation)
Add more tests for the new API
Start implementing new graph inference rules (this should have been a separate branch. Further development will occur on a separate branch.)
This branch introduces API redesigns/re-implementation, specifically: