Fixes issue 146. Pure pytest tests and python2.6 support

Removed unittest usage since you are using pytest anyway.
It is now more clear the assertions are without all these utility functions, simple python asserts.

Replaced '{} {}'.format() with '{0} {1}'.format() to support python2.6

One thing is I removed the sphinx requirement from the install and moved requirements to setup.
Sphinx can be done as extra or something like this, it depends how do you make the docs. Otherwise installing sphinx is too slow for the Travis CI (takes ages to compile and not really needed to use or to test).

I also tried to add some support for python3 like catching the exceptions as e, next(hint) and workaround for the metaclass.
I gave up at the point with iteritems..
It is possible to do something like jinja or flask is doing by basically monkeypatching (see import from compat).

I added python 2.6 target to travis ci.

Actually i just wanted to try the schematics out, but our project has a dependency on python2.6 :)


And one more thing is some of the tests could be splitted into separate modules and the test file can become a package. Split it into the modules as they were classes of the TestCase for better structure. I don't see problems now since names of your tests functions were unique.