Output formatters improvements

* prevent MixedStrings from including many empty strings
* make Python 2 compatible (__unicode__ and __str__)
* use str = unicode instead of text_type
Improve Python 2 compatibility. Fixes the examples under Python 2.

Compatiblity is provided by making Python 2 mimic Python 3:
* from __future__ imports
* override str, print (text encoding) and open
NF: add restructured text formatter
NF: add hairy script to output bibliography

Well - it's just an example
Adapt the reStructuredText output formatter to use the py2compat module
Some minor improvements to the command line tool
Don't escape quotes, both in Python 2 and 3