Use non-const references on Visual C++ 6.5 to work around a bug with array references.
On Borland add a pointer overload of hash_range to use instead of the array workaround that I checked in earlier today.
Fix the array size calculation for compilers with function template ordering.
[SVN r28228]