fieldmappers are now run as part of the message object when accessing the fields

this avoid code duplication which was partly responsible for cause this regression

additionally we need to manually convert Doubles to Longs when using the raw value for searching, because our json library doesn't use the most specific type possible but rather defaults to doubles, cause the searches to fail later on.

fixes #539