Introduce IRef and implement IRef and IMeta for Atom

I was thinking about breaking `IRef` up into `IValidatable` and `IWatchable`, what do you think?