Cleanup Scalar a bit

Ok. Maybe we should consider making `Scalar` a subclass of `ABCMeta`, though that might be overkill. It was just surprising that you get an error about not having `__slots__` (this makes sense, but if you say `__slots__ = ()` then scalar is just `Scalar()` every time)