Moved the formatter type onto the functions rather than the struct.

This makes it much easier to make the struct a friend of BasicFormatter (so that it can access Arg) without having to adjust the visibility of Arg or add extra friends.
Added overloads for Format to call VariadicFormat with the default formatter; used as shown below:

std::string str = fmt::Format("Hello {0}", "World");
std::wstring wstr = fmt::Format(L"Hello {0}", L"World");

Fixed some code formatting, and made sure that everything was using StringRef/WStringRef/BasicStringRef.