Add cleaner attribute verification

There are now some private static methods that can be used to create
UserMessageExceptions with more specific and clear information to
display to the user than before.

Also added checks across the board for if the attribute that was being
checked was null or empty/whitespace so a more descriptive error could
be shown to the user rather than a file that wasn't configured couldn't
be found.
Fix not using 3 param of GenerateEmptyAttributeException
Add GameValidator::ValidateGameAttributes

There's now a method that checks the game attributes that are necessary
for it to be a valid definition, or a UserMessageException is thrown.

This is used during the validate step and the build step currently in
order to show the user a clearer message rather than a generic Uri
exception being thrown.
Add check for table.board to validation
Merge pull request #1248 from Datyedyeguy/master

Add cleaner attribute verification