Handle JSON startup errors more gracefully

User data with invalid JSON no longer breaks everything, and the base
config is no longer overwritten with the default.
Use GiveBadge from badge mod

No need to redefine it.
Marine vs Marine support

Proper team names (blue and orange) and support for team targeting with
those names.
Smarter name matching, and Steam ID matching

- Name matching returns the client with name that has the search string
furthest to the left in their name (byte wise, not necessarily character
wise).
- You can now use $<SteamID> to force matching to the given
NS2ID/SteamID only.
Steam ID matching for single clients too

Forgot this!
More graceful JSON error handling

A few more issues fixed, and handles plugin JSON errors too.
Fixed typo/cleaned up code

For the server screen text file.
Account for missing fields in Steam API response

Otherwise, "nil" will be updated and require the server to change map...
Merge pull request #343 from Person8880/develop

Better JSON handling, improved client targetting and other fixes