various display type validations

- Formatters check their return type
- some DisplayObjects check input args
- javascript checks data types of display messages

Each of these individually would fix #4564

Still testing to do.