Simplify pairvalidate

- sort each input list
- walk down both lists in sync
  - if the two attributes are of different types, die
  - if the two attributes don't compare equal, die

  - go to the next attribute in each list
  - if both are NULL, we're done
  - if one is NULL and the other isn't, die
Added simple keyword tests

This should let us test the functionality of the unlang keywords

We should later add another (similar) directory, which tests
combinations of keywords, fail-over, etc.