Reimplement line parsing to handle edge cases on vCard 2.1 and 3.0