test: refactor using unittest
test.py: add sine wave to data in Fragment.offset
splat.data.Fragment: add dup() to duplicate fragment
splat.data.Fragment: add md5() to get MD5 sum of all data
test.py: add cases for Fragment.dup and Fragment.md5
_splat.c: add float sample mode to Fragment.as_bytes(0)

* when the sample_width is set to 0, use the native floating
  point sample format (typically double, so 64-bit values)
* add full docstring for manual
doc/splat.rst: add missing native data.Fragment methods
tests.py: update Fragment.md5 case + tidy-up
rename _splat.sample_precision to get_sample_precision

* rename _splat.sample_precision() to get_sample_precision
  as it's a function
* export integer in splat/__init__.py as sample_precision
  which takes the value of _splat.get_sample_precision
* update tests, docs and import statements in __init__.py
rename Fragment.sample_rate to Fragment.rate
_splat.c: add `length' kwarg to Fragment_init and _resize

* Fragment_init: add `length' keyword argument to specify the
  length of the fragment in frames (samples per channel) as an
  alternative to duration in seconds - both can't be used at the
  same time

* Fragment_resize: add `length' keyword argument like in init

+ update doc and docstrings accordingly
splat.data.Fragment: add support for saf files

* add support for Splat Audio Fragment 'saf' file format
  which is a Splat specific format with all the sound
  data directly compatible with a Fragment (i.e. 64-bit
  floating point or 'double')
* fix issues with file extensions and explicit file format
  identifier in Fragment.save and .open
* add saf case to test_frag_save
fix sample format definitions + raw import/export

* replace _splat.get_sample_precision() with constant

* add _splat.SAMPLE_INT and _splat.SAMPLE_FLOAT to identify
  whether sound samples are integer or floating point

* rename _splat.Fragment.as_bytes -> export_bytes

* update arguments of _splat.Fragment.{import|export}_bytes to
  use the new sample definitions + add keyword arguments

* update docstrings in splat.data.Fragment

* sample_width is now defined in terms of bits per sample per
  channel instead of a number of bytes

* support only 64-bit float and 16-bit integer for now

* splat/__init__.py: from _splat import SAMPLE_INT, SAMPLE_FLOAT,
  NATIVE_SAMPLE_TYPE, NATIVE_SAMPLE_WIDTH

+ update tests and usage in splat.data
doc: add section for audio file formats + review and improve
_splat.c: add 32-bit float and 8-bit int i/o
splat/__init__.py: add list of supported audio formats
test.py: test all available i/o audio formats
update copyright notices with 2014
update version to v1.3
build-0009