Lossless tags

New type is `@@@` - which is defined to be:

    type Tagged[T] = {type Tag = T}
    type @@@[+T, Tag] = Tagged[Tag]

Usage is:

    scala> Tags.MinVal.unwrap(Tags.MinVal.lossless(1) |+|
    Tags.MinVal.lossless(2))
    res0: Int = 1

    scala> Tags.MinVal.lossless(1) * Tags.MinVal.lossless(2)
    <console>:14: error: value * is not a member of
    scalaz.@@@[Int,scalaz.Tags.MinVal]
                  Tags.MinVal.lossless(1) * Tags.MinVal.lossless(2)