basictypes: use a dedicated type for octet strings with a format

When an octet string has a format, we consider it to be a display
string. A regular octet string is stored internally as an array of
byte while a display string is stored as unicode.

Moreover, the canonical representation of a display string is now its
display representation. We are now able to transform a display string
displayed with its hint to the regular array of bytes needed to send
to SNMP.

For example, we should be able to set MAC addresses with m.XXXXX =
"45:17:18:39:54:11". And only this way. A major drawback is that
transforming the human representation to an array of bytes is
difficult (or impossible). We rely on the fact that MIB won't use
overcomplicated display formats. This work fine for "1x:" or more
complicated formats as long as we are using separators.
basictypes: test unicode coding/encoding

We need an unicode string for that. We define a new one.
basictypes: remove debugging prints
manager: allow to set a formatted string

When we have a display string, make SET work as expected. Add
unittests to cover those cases.
basictypes: fix handling of bytes/str/unicode for String class
mib/basictypes: enums are decoded in `mib` module
basictypes: get rid of `display()` function

Since we split display strings from regular strings, this is mostly
equivalent to str(). Only the hex display is different but we don't
really care.
tests: remove garbage output when running `python setup.py test`

This is a bad interaction between nose and multiprocessing. This is
explained in this bug report. The idea is to keep a reference to
multiprocessing:
 http://bugs.python.org/issue15881
tests: remove more garbage output when running `python setup.py test`

Same as the previous commit but for pysnmp this time.
py3: use functools.total_ordering to avoid to enumerate all cmp functions

Python 3 does not assume total ordering. We use
functools.total_ordering for this. This does not exist for Python 2.6
and because of the presence of some oredering function, we need to
define the minimum.
basictypes: provide a decorator to use `__cmp__` again

With Python 3, `__cmp__` is not used anymore. We use a decorator to
build rich comparison operators from `__cmp__`.
enums: fix equality/inequality with enums
py3: make basictypes test work with Python3
py3: don't use `iteritems()`, use `items()` instead
py3: ensure SNMP tests are running well with Python3
py3: make `tests/test_main.py` work with Python3
py3: all tests are now running with Python 3.3

Add automatic tests for Python 3.3 in tox and Travis CI.
py3: make examples Python3 compatibles

We just use the `print()` function instead of the statement.
py3: make snimpy work when invoked as shebang

`execfile()` is not supported anymore in Python 3. Better use directly
`exec()`.