Field Add Forward Declarations

Add long missing forward declarations for fields.
Avoids rewriting all the scattered places where
there name is already needed.
Close #172 Unify ValueTypes for Fields

promoteType is a type trait, the usual name for their result
is not ::ValueType but e.g. ::type or ::result

ValueTypes are types of e.g. an internal storage object
Merge pull request #178 from ax3l/topic-fieldsForward

Field Add Forward Declarations