ok, removing mop::defined and moving this in another direction. 

To start with, lazy values will calculate if a value is undef or does not exist. This is meant to be closer to how scalars work in plain perl, since they do not have a concept of "not initialized" beyond the implicit undef. This seems to make sense, it is only an issue if you want to know if something has been initialized or not yet, but you can do that via the MOP.

The lazy trait test has been updated, as well as the Moose-to-MOP docs.