[Infrastructure] Be more careful about field_type / real_type

This patch removes the assumption that the field_type and / or real_type
can always be implicitly converted to double and can be implicitly
constructed from an int (in constructs like field_type d = 0;).

This patch is required for compatibility with the FLOP counter in PDELab.