Allow pull parsing QName compare to use implicit Equal[QName]

This pull request updates the pull iteratee to use an implicit scalaz Equal[QName] for qname compare. This allows a user to bring a different Equal[QName] into scope when pull parsing. For example:

```scala
implicit val qnameEqual:Equal[QName] = equal { (a: QName, b: QName) =>
  a.local.equalIgnoreCase(b.local)
}

val xml = """<?xml version="1.0"?>
  <root>
    <interesting></interesting>
    <interesting></interesting>
    <InterestinG></InterestinG>
  </root>"""
val pull = pullXml(new ByteArrayInputStream(xml.getBytes))
val itr = iterate(List("root"l, "INTERESTING"l), pull)
assertEquals(itr.size, 3)
```

I don't know if the way I implemented this is preferred or not. Completely open to feedback. Thanks!