Allow fixed length columns in maestro load task input

A bit of a monster commit which does several things:
1) Adds a loadFixed method to public Load API, allowing fixed length columns
2) Adds a Splitter class to encapsulate the logic of splitting a row into fields
3) Refactors loadProcess to use Splitter rather then assuming delimited splitting
4) Separates the logic for adding rows from the logic for splitting / joining fields
5) Adds extra logic to loadProcess to cope with the fact that splitting can now fail
6) Makes loadProcess private to allow it to change without breaking clients
7) Adds comments to and minor refactor of loadProcess implementation
added tests for splitting fixed and delimited rows