Fixed tuple bug with string manipulations.

The duck typing mechanism failed when calling `.lower` or `.swapcase`
on tuples because the `try: except:` block only caught `TypeError`s,
and this raises an `AttributeError`; this has been corrected.

This fixes #15.
Refactored utility functions out of natsort.py.

The utility functions and variables have been refactored out of the
natsort.py module and into the utils.py module... this has the benefit
of placing only user-facing code in natsort.py, and also making it
more obvious that most of the utility functions went into building the
_natsort_key, and were not used by the user-facing functions.

The hope is that this makes natsort more easy to maintain.
Changed import scheme from relative to absolute.
Unit tests now display lines with missing coverage.
Separated testing files.