Deduplicate headsigns (and trim canonical Strings)

For a lengthy discussion of the implementation details of various Java String classes, see:
http://stackoverflow.com/questions/390703/what-is-the-purpose-of-the-expression-new-string-in-java