Boot model on unserialize

Fixes #3587

If you unserialize a model before booting it, the model will not be booted and when calling `toArray()`, mutators will not be called. We fix this by using `__wakeup()`, a method that is called on unserialization.

http://www.php.net/manual/en/language.oop5.magic.php#object.sleep