LPS-47673 Introduce inner classes for UserScreenNameException for each cause

The design goals have been:
1) Centralize the generation of messages within the class
2) Allow for causes to be catched independently
3) Each cause should have all the information necessary to diagnose the problem available through getters.
LPS-47673 Without the "new String", it will actually do a toString on the char[] which will give us a reference to the Object, that's probably not what we want
LPS-47673 add line breaks
LPS-47673 Match our other javadoc syntax
LPS-47673 Simplify
LPS-47673 Tiny wordsmithing for consistency
LPS-47673 Sort by constructor order
LPS-47673 I think you meant "disabled"
LPS-47673 We've been quoting properties so far