Resolved Issue 178 (https://github.com/alimanfoo/petl/issues/178)

Prior method created a defaultdict, where key = the field name.  This posed problems when tables included duplicate field names in the header row.

The method now relies on the index of the field in the default dict, but formats and displays the field name when displayed.

For example:
from petl import see

table = [['foo', 'bar', 'foo'], ['a', '1', 'b'], ['c', 2, 'd']]

print(see(table))

Added unittest: petl.test.test_util.test_see_duplicateheader()
Merge remote-tracking branch 'origin/master' into issue-174
tocsv/totsv now accept an optional argument, "write_header=False".  Arguments ported to unicode versions as well (toucsv, toutsv)

When "write_header=True", writes `for row in data(mytable)`
When "write_header=False" or not specified, exhibits prior behavior of writing `for row in mytable`

Docstring modified to explain the new optional argument.

Unittests modified (test-cases added): petl.test.test_io.test_tocsv_appendcsv()
petl.test.test_io.test_totsv_appendtsv()
petl.test.test_io_unicode.test_toucsv()