Add allocator support to StringMaker<vector>

 - also extracted out 'rangeToString', in an attempt to make it easier
   to add support for other containers
catch_tostring : moved defintion of rangeToString

 Detail::rangeToString is now defined after the various toString
overloads. This results in them being accessible with rangeToString is
instantiated (in this case, by StringMaker<vector>). This (sort-of)
fixes the problem where contained types are toString'd incorrectly.

Consider:
  std::vector<std::string> v { "abc" };

Before:
  Catch::toString( v ) == "{ abc }"
After:
  Catch::toString( v ) == "{ "abc" }"

(note the extra pair of quotes around the "abc" - these are added by
Catch::toString( std::string ) which is now called by rangeToString)
updated single-include version
Merge pull request #198 from PureAbstract/vector_to_string

Add allocator support to StringMaker<vector>
Merge commit '0dbcf218c353e801d4fa26d14696e81f6b832cad'

Conflicts:
	single_include/catch.hpp
Merge commit 'd6f23a9a36cf008b870a2d7c51e422dc209d3241'
Regenerate single-include
Merge commit '22ded1f2bb3caf96d90c2f1981ede29d3aeb1c74'