Use tests_require instead of install_requires

Previously some dependencies for unit testing were mixed
with other dependencies in install_requires option.

Distribute (was setuptools) provides tests_require option
to describe dependencies only for testing, so we'd better
to utilize it.  More over it doesn't require administrator
permission even if you aren't using virtualenv --- it simply
unpacks dependencies on working directory instead.
Add equality testing methods to most objects

Closes #69
Merge remote-tracking branch 'github/pr/82' into develop