Further improvements in nationwide csv handling

I am afraid this one is part refactor and part adding feature/fixing bug. 

This PR adds a MoneyColumn class (and specs) that can help with merging columns. It will check whether the two columns are alternating (i.e. if one column has a value the other shouldn't have a value). And also whether both columns are positive. If so it will invert one column. This is since some two column csv will have both columns positive, with one column representing credit and the other debit.

The PR will also check whether columns can be merged at all (i.e. are alternating) before further evaluating those two columns. This led to a speed increase in the tests.