RichText: fix username parser in the presence of trailing periods
RichText: fix username parser in the presence of trailing periods

This change fixes a RichText parse of a username when it is followed
immediately by a period. Previously, an input like "@user." would not be
parsed as [EUser "user", "."]. While periods are valid characters in
usernames they are only valid *interior* characters. We just hadn't
written the parser to carefully capture that. The new parser ensures
that we only ever consume the "." input if it is immediately followed by
a valid username chunk. This way, usernames like "@joe.smith" are still
parsed correctly but inputs like "@joe." no longer cause the parser to
consume the "." input.

matterhorn-chat/matterhorn