Primitive value's model changed.

Until now, all the methods were defined in PrimitiveValue class, which simply throw exceptions.
From a software engineering perspective, this was a little bit ankward.

Instead, now each subclass implements only its own methods.
From the user perspective, a lot more castings will be used.
I'm not personally 100% happy with this solution which relies in castings and/or instanceofs, but I honeslty think that the polymorphism wasn't used properly.

https://sites.google.com/site/steveyegge2/when-polymorphism-fails