Commit was cherry-picked from PR #3635.
`isalpha` (and other) are locale-dependent for win32. See [is, isw Routines](http://msdn.microsoft.com/ru-ru/library/4yc6feha\(v=vs.100\).aspx) and [setlocale, _wsetlocale](http://msdn.microsoft.com/ru-ru/library/x99tb11d\(v=vs.100\).aspx). Moreover, on win32 we have troubles with high ASCII: https://github.com/xbmc/xbmc/blob/master/xbmc/utils/StringUtils.cpp#L255 as warned in [is, isw Routines](http://msdn.microsoft.com/ru-ru/library/4yc6feha\(v=vs.100\).aspx).

Situation is the same on other platforms:
See note on the end of page: http://www.cplusplus.com/reference/cctype/ or description on http://pubs.opengroup.org/onlinepubs/9699919799/functions/isdigit.html

To conclude: we have undefined behavior with chars > 0x7F if they passed without `(unsigned char)` and undefined dependence on locale.
Too many troubles. But solution is simple, clean and lightweight. If used as inline functions it's almost equal to define macro.