Add option for field order

Issue #10

The order of fields in text output can be specified explicily by an array
of strings which contains the names of properties in the preferred order.

When the array is null or empty, all fields are included in the order they
are returned from the Type.GetProperties method.

Fields not specified in a non-empty array are skipped.
Quote text that contain line, field or quote chars

Issue #10

When a text contain field or line separators or the character used for
quoting, the text can be optionally qouted by setting the `QuoteFields`
flag.