Spirit rules are just placeholders. They are cheap to construct and by doing
this static initialization order fiasco problem is effectively avoided.
Also had to fix name clash between geojson and generic json parsers.
- the function in plugin was already configurable via flags, and only
contained two un-conditioned blocks that process_csv_file didn't have
- so I extracted the common parts into a separate function (in a class
holding the flags and state), process_csv_file calls it with default
flags, plugin sets them from params
- removed namespace ::detail, moving stuff that was used outside
csv_utils to ::csv_utils, and the rest to ::csv_utils::detail