Refactor and move RecordClass into RT::SearchBuilder

_SingularClass provides the same functionality, but we use the term
RecordClass elsewhere (RT::SharedSetting and subclasses and
RT::SearchBuilder::AddAndSort).

RecordClass is easier to remember and not private.
Add _SingularClasses for those collections which can't be s/s$//
Use ->RecordClass where possible in favor of ->NewItem
Replace almost all boilerplate NewItem methods with a generic superclass implementation
Merge branch '4.2/record-class-on-collection'