Various Additions/Changes to neo4django.utils

I've made a few additions to the `neo4django.utils` module if you wouldn't mind taking a gander at.

First, I didn't notice any tests for methods/classes therein and limited docstring usage. I've made an attempt to go through and thoroughly test/doc everything there. Please let me know if anything looks off or I've made incorrect assumptions. I should also mention that I added `mock` and `pretend` to the test requirements file. I tend to use these extensively for unit tests where mocking/stubbing is well suited for the job.

Second, I took the opportunity to make a couple tweaks/improvements to some of the inner workings of methods/class in `utils` that I think should DRY things up a bit and make things easier to read/understand. Thoughts on those changes are always welcomed.

Thanks!