Fix py3 imports and reduce vendorizing

As discussed in #5 this (on the top of stage1):

- removes (most) vendorized packges and imports them (adds them in requirements)
- fixes all python 3 imports
- means that all tests run in python 3 (they don't pass)
- all test pass in python 2

For [a taster](https://gist.github.com/hayd/c9246c15652e5eb3b90b) of the most common remaining py3 errors:
```
 50 ValueError: dictionary update sequence element #0 has length 1; 2 is required
 36 TypeError: startswith first arg must be str or a tuple of str, not bytes
 18 RuntimeError: maximum recursion depth exceeded while getting the str of an object
 11 pattern.db.TableError: table 'pattern_unittest_db.persons' already exists
 11 AssertionError: False is not true
  9 TypeError: strip arg must be None or str
  8 TypeError: unhashable type: 'Node'
  8 ValueError: need more than 0 values to unpack
  8 RuntimeError: maximum recursion depth exceeded while calling a Python object
  5 IndexError: list index out of range
  5 AttributeError: type object 'str' has no attribute 'atoi'
  5 RuntimeError: maximum recursion depth exceeded
  4 ValueError: level must be >= 0
  3 TypeError: 'cmp' is an invalid keyword argument for this function
  3 TypeError: expected bytes, bytearray or buffer compatible object
  2 TypeError: Unicode-objects must be encoded before hashing
  2 TypeError: 'str' does not support the buffer interface
  2 TypeError: must use keyword argument for key function
  ```
*All tests running seems like a rather large milestone.*