Added coarse collision

This is really only a straight port, there are going to be a number of
problems with this code. C# generics are nowhere near as good as C++
templates so this needs a bit more thought, possibly use an interface or
abstract class to handle the bounding volumes.  Also, the contacts array
needs to be worked into the recursive methods. It isn't like a pointer
so we can't simply increment the pointer when passing it as an argument.