[#1698] Fix select template tag to allow % and other non-String objects as label

The % character needs to be escaped when used inside a messages tag
(which the #{select} template tag does for label). In addition,
labelProperty can point to a non-String field, so toString should be
called on that before trying to HTML escape it.