Universalize all "typeclass traits" in Spire.

None of our typeclasses should be doing work in constructors,
defining fields, etc. This commit adds "extends Any" to all
of these classes, making them eligible to be extended by
value classes.

Some other traits were left alone (notably traits in spire.random).
It may be worth updating those too, but I think we'll need to
look at that case a bit more closely.

Review by @tixxit or @larsrh, and @paulp if he wants.
try to fix .travis.yml
Merge remote-tracking branch 'origin/master' into topic/universal-traits
add some more universal traits
Merge pull request #319 from non/topic/universal-traits

Universalize all "typeclass traits" in Spire.
Add an iterator method to Interval[A].

This method allows users to easily iterate over an exact range:

    val ns = Interval(0L, Long.MaxValue)

    val longs1 = ns.iterator(2L).take(30).toList
    val longs2 = ns.iterator(Long.MaxValue / 3).toList

There is some safe-guarding to avoid overflow in the case of
fixed-width integer types (Int, Long, etc.). However, there is
no attempt to compensate for arithmetic error during addition.
Using Interval[Rational] in these cases is probably better.
Add tests for Interval#iterator.