process_csv - fix parsing UTF-8 and actually lexing the CSV format

This commit fixes Unicode parsing issues and starts to actually
parse CSV.

- Rather than just checking for UTF-16 and skipping the BOM's two
bytes use codecs.BOM* to find all BOM's, check for them, and skip
the first bytes appropriately _if they are there_.

- Need to handled quoted characters (and escaped quote characters)
so use ply to actually lex the CSV file.

Lexing isn't perfect; it only handles formats where the quoting
characters is escaped by entering it in twice (as opposed to using
an escape character).
infrastructure - commit loom / Puppet scripts

Start trying to provision this.