[TASK] Shift to internal recursive array merge in inheritance
[TASK] Expand returned field array to variable then return
[FEATURE] Finer inheritance settings on every Flux field type

This feature adds two new attributes to every Flux field:

* inherit (integer, used only as boolean currently)
* inheritEmpty (boolean)

Setting these attributes will affect how each field is processed when parsing the root line of records that make up an inheritance tree. By setting `inherit="0"` you can prevent the particular field form inheriting its value - and by setting `inheritEmpty="TRUE"` you can allow empty (but non-zero) values to be inherited.

The reason for always allowing inheritance of a true zero value is that this particular value is often used as a "none" value rather than a value which should be overridden by a parent value.

Fixes: #36
[TASK] Allow zero to be considered non-empty in inheritance