isForwardRange now takes an optional element type. isForwardRange now has an optional 2nd template parameter that defaults to void. If not void, it only evaluates to true if the range's element type is the same type as this extra argument, modulo const. For instance, `isForwardRange!(int[], const(int))` is true, but `isForwardRange!(int[], string)` is false.