[WIP] Add access control modifiers

This adds access control modifiers to Cartography.

I gave the `Property` protocol internal visibility to make it harder to "escape" the DSL, but that required me to overload `==` et al. for `Dimension` and `Edge` individually. Maybe I'll revert that in the future to make things DRYer again…

Closes #19