make transformers less magical

  - remove preprocessing (value = value.toString())

  - pass value as an argument rather than messing with context

  - remove special treatment of null and undefined return values