ugh, appending to strings look O(n^2) or something

http://stackoverflow.com/questions/4435169/good-way-to-append-to-a-string
quite a lot faster
bugfix - set the final rowcount

nothing was written to output
remove trailing b' ' from "correct" data
remove early bail-out
bugfix memory requirement estimation

the bug driving these changes was
-        bytes_per_rowT = (self.longcell + 1) * self.rowsT() # +1 for sep
+        bytes_per_rowT = (self.longcell + 1) * rowsU # +1 for sep


re-evaluate memory estimate at points through the file,
  make a final decision after passnum==0

now we need to guess the number of rows in the file
  (or drive memory budgetting from a bytes-stored counter)
bugfix - trim leading whitespace on rowU
mem_limit fudge factor

sweeping unspecified problems under a carpet
stream the next rowT on each pass

saves the memory for one rowT[][]
and degrades more gracefully when the memory budget is too small
switch off profiling
make prng-ish matrix
junk matrix generator

rather sparsely tested
Merge branch 'feature/profile' into dev

* feature/profile:
  junk matrix generator
  make prng-ish matrix
  switch off profiling
  stream the next rowT on each pass
  mem_limit fudge factor
  bugfix - trim leading whitespace on rowU
  bugfix memory requirement estimation
  remove early bail-out
  remove trailing b' ' from "correct" data
  bugfix - set the final rowcount
  quite a lot faster
  ugh, appending to strings look O(n^2) or something