Fix for 552: JSON parse memory leak

Instead of using json.load(fp) to check if a file is JSON, simply check the first non-whitespace char
Avoids the leak, and uses much less memory overall
Fix for 551: Use iterative read approach

Greatly reduces RAM usage by reading line-by-line
Also returns sparse data to the constructor, rather than dense data
Still able to handle lists and files as input
Update test case for _extract_data_from_tsv()

When fixing 551, RAM usage was reduced by returning sparse data
Test case has been updated to check for sparse [row,col,val] list
PEP8 compliance
PEP8 again
Update ChangeLog, add self to credits
Improve logic style
Merge remote-tracking branch 'upstream/master'

Conflicts:
	ChangeLog.md
Remove unused variable and PEP8
Remove unused header_mark parameter
Fix embarrassing pre-coffee mistake
Merge pull request #553 from mwhall/master

Fixes for 551 and 552