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.