Non-scalar fields
Addresses #155 (closed) and implements the behavior specified in the issues text.
I highly recommend to base any reviews on commit 62c8c6de, as this commit brings a lot of docstring changes shadowing the 'meat' of the changes.
The only really controversial point I currently see, is the removal of the target parameter. This was done, as target does not bring anything to the table not available through tools.copy, clutters the function signature and would make the implementation of non-scalar fields quite a bit more complicated.
Edited by David Schäfer