moved isEmpty and isEmptyOrWhitespace into comparisons section;
added joinText and prependText
added headText, tailText, and subText