value class

this changes does **not** drop support Scala2.9.

now, we can write each scala version specific code in `src/main/scala210` or `src/main/scala29`.
if scala2.9 the type alias `Super` is `AnyRef`, and then if Scala2.10 the type alisas `Super` is `AnyVal`.