Use binary file modes

Add unicode readers/writers
Merge branch 'i_batch' into unicode_io
Merge branch 'i_batch' into unicode_io
Add travis config
Merge branch 'development' into unicode_io

Conflicts:
	.travis.yml
Merge branch 'master' into unicode_io
Merge branch 'development' into unicode_io

Conflicts:
	karld/loadump.py
Merge branch 'master' into development
Merge branch 'master' into unicode_io
Use iter's sentinel arg instead of infinite loop
Merge branch 'master' into development
Merge branch 'development' into unicode_io
Renamed io.py to unicode_io.py
Write unicode documentation
Use unicode reader and writer
Add characters not in ascii to tests
Pick better names for csv functions

Add tests to cover encoding csv readers and writers

Move utf-8 rows to separate fixture data files
Enable writer to write non-unicode data

The string values used should be handled as unicode, but the
data may contain numbers types such as int or float.

Make joiners return unicode strings.
Add tests of yield getters
Improve doc for merge to show use of key function