replace variable length arrays with std::vector

I have prepared the most direct version of std::vector-instead-variable-c99-array, intentinally not changing the signatures. I hope you'll introduce vector parameters etc. in more  consistent way than I can.

The final steps to support Windows is the described array change and 9f545cf16a9f93664c6737bbaf0b289ec418e1ab inclusion (done in master but not here).

Could you please run ``make check`` on Linux? On Windows I have 8 rounding errors, one UTF8 error and one ``Projection code failed to initialize`` (will solve it by configuring environment).
Any idea what `tag` is for? Seems to be set but not used?