Add logic to report bad line when attribute parsing fails.
Parse attributes using shlex.split to better handle quoting.
Check to ensure that shlex-parsed attribute values are delimited by semicolons.
Factor out attribute parsing code for reuse when getting columns to construct table.
Merge pull request #1 from dnanexus/PTFM-8679-bad-attribute-parsing

[PTFM-8679] fix bad attribute parsing