Field name fix

* Fixed the field name macro to get the correct field name instead of `_n` and added testing for the fields macro.
* Renamed `Field.value` to the more meaningful `Field.name`.
* Added doco.
This is much better than before. :+1: