Refactor UnitId to be an abstract newtype around String.
The primary consequence is that we can't assume that we have a ComponentId when we have a UnitId in hand. Most of the time, this just means we have to pass around ComponentId explicitly. No problem. Signed-off-by: Edward Z. Yang <email@example.com>