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 <ezyang@cs.stanford.edu>