Support both Python 2.6+ and 3.3+ in single code base.

- Adds dependency for six library
- Add testing support for Python 3 in tox and travis
- Limited porting from 2to3, use six for compatibility.
- Explicitly define where we are working with unicode strings
  and where we are working with byte strings.
- Use str(message) for Python 3 instead of unicode(message).
  Use a class decorator to provide the correct __unicode__ and
  __str__ methods
- Add encoding parameter (defaults to UTF-8) for hl7.parse
  and hl7.client.MLLPClient
This is based on kevingill1966/python-hl7@develop pull request.

https://github.com/johnpaulett/python-hl7/pull/4

It has been rebased onto feature/python3-support.

The insertion of an initial empty element in containers to fix sequence numbering has been removed. Sequence numbering will be fixed in a subsequent PR.

Support for the special accessors has been removed. This will be added back in a subsequent PR.

From kevingill1966 changelog.rst:

Non-backward compatible changes:

* Changed the numbering of fields in the MSH segment. This breaks older code.
* Parse all the elements of the message (i.e. down to sub-component). The inclusion of repetitions will break older code.

Others:

* implemented a basic escaping mechanism
* new constant 'NULL' which maps to '""'
* new isfile() / splitfile() functions to identify file (FHS/FTS wrapped messages)
Second stage of @kevingill1966/python-hl7@develop pull request

This is the second part of kevingill1966/python-hl7@develop pull request.

https://github.com/johnpaulett/python-hl7/pull/4

It addresses these issues raised in that PR:

3) Introduce new "PID.4.1" access notation
4) Use 1-based indexing instead of 0-based indexing inside fields

The new symbolic access notation is now abstracted into an Accessor class which can be parsed from a string. This allows for easier iteration of repeating fields etc. by just incrementing a numeric field in the Accessor instance.

HL7 1-based indexing is supported on all sequences by using them as a callable. e.g. h[0] == h(1)
Use isinstance instead of checking explicit type.
Make Accessor a lightweight namedtuple subclass and pass separate arguments to extract_field/assign_field.
Tweak doc comments.
Implement slice to return the correct container instead of a regular list.
Use assertInstance from unittest2. Compatibility for unittest2 and mock across Python 2 & 3
Refactor the Makefile.
Fix a few failing doctests.
Fix broken doctests.
Switch from "make test" to "make tests"
Update the changelog in preparation for 0.3 release.

- Resetting version to 0.3.0, since it was never released.
- Adding Kevin, Emilien, and Andrew to the AUTHORS list.
Merge branch 'accessors'.  Thanks Kevin Gill, Emilien Klein, and Andrew Wason.
Bump version to 0.3.0-final for release.
Bump for next point release.
Show backwards incompat on README.rst & adjust travis badge location.
Implement HL7 2.9.2 ACK message creation.

Also add Message helpers to create elements with the same
separators as the source message.
Allow ACK message ID to be specified.
Merge remote-tracking branch 'rectalogic/ack'