resolves #495 add attribute to keep lines that have an undefined attribute

- add tests for dropping (or not dropping) lines with an undefined attribute
change assert_not_match to assert_no_match to make Ruby 1.8 happy
Merge pull request #497 from mojavelinux/ignore-undefined

resolves #495 add attribute to keep lines that have an undefined attribute
resolves #498 permit !name syntax for undefining attribute

- remove unused attribute matching regular expressions
- normalize negated attributes before processing other assignments
- improved attribute tests