Adding a ray

Although I don't like the usage of mutable on min_t/max_t mentioned in
the book, I'll leave that off and use non-const ray parameters instead.
It seems like you're lying if you modify mutable members on a "const"
object