[#77] Introduce Fig - isolated snakebite testing

Notes:
 * Fig is not integrated with setuptools, running python setup.py test
   will use Tox for testing
 * Fig still uses standard python setup.py test (including Tox) but
   inside separate/isolated OS/container
 * Requires Docker installed on your machine(!)

PR provides fig configuration for:

+-------------------- -+-------------+
|  description         |   command   |
+----------------------+-------------+
|  dirty testing image |    dirty    |
|    py2.7 and HDP     | testPy27hdp |
|    py2.7 and CDH     | testPy27cdh |
|    py2.6 and HDP     | testPy26hdp |
|    py2.6 and CDH     | testPy26cdh |
+----------------------+-------------+

So how to start:
 * fig build ( should build your current dirty image)
 * fig run testPy27hdp (to run isolated py2.7 tests on HDP)

To run all tests at the same time run:
 * fig up
Not tho this is actually requires so resources.

Details:

1. Improve setup_env

 * handle only-download, only-extract, distro-select
 * add nice flags and nice flag handler

2. Add fig to dev requirements

3. Add Dockerfile for dirty testing image

 * image used to build dirty testing images
 * based on ravwojdyla/snakebite_test:base
 * copies your local dirty code base
 * install all dev requirements from your dev requirements

4. Add fig configuration file

5. Add Dockerfile for snakebite_test:base

 * base image for dirty testing images
 * based on dockerfile/java:oracle-java7
 * downloads cdh/hdp tarballs
 * install python 2.6 and 2.7
 * install pip

6. Add script to build snakebite_test:base
Merge pull request #86 from ravwojdyla/fig

[#77] Introduce Fig - isolated snakebite testing
Release 2.4.8
Fixes #71 - test only accepts type str

Allow unicode as path for client.test
Merge pull request #88 from ravwojdyla/fix_test_unicode

Fixes #71 - test only accepts type str
Release version 2.4.9
Use multi dimension from Tox 1.8.0

 * update tox from 1.7.2 to 1.8.0
 * small style change - add spaces around = in tox.ini
 * rewrite tox.ini with support for multi dimension environment
   specification - less repetition

Closes #83
Add release script

Release script automates release process:
 * bumps version in python version file
 * bumps version in debian changelog
 * add entry in debian changelog
 * commits release changes
 * add tag with proper release version name

Example of usage:

 ./scripts/release.sh minor "Rafal Wojdyla" ravwojdyla@gmail.com
 "Add release script"
Update documentation - testing/development

 * add sphinx_rtd_theme theme to dev requirements
 * change theme to sphinx_rtd_theme
 * fix section headers - use chapters where needed
 * refresh documentation where needed
 * add docs on development and testing

Closes #81 and #82
Remove incorrect comment

This comment is incorrect - we don't save config file anymore.
Completely remove comment as it's no needed - code is self explanatory.
Merge pull request #96 from ravwojdyla/docs

Update documentation - testing/development
Merge pull request #93 from ravwojdyla/upgrade_tox

Use multi dimension from Tox 1.8.0
Making it possible to set the NN port
Merge pull request #98 from anyman/master

Making it possible to set the NN port for minicluster testbase
Merge pull request #91 from ravwojdyla/add_release

Add release script
Release version 2.4.10
[#101] Add block size parameter for put operation on minicluster

In some tests snakebite depends on number of test data blocks, original
tests were writing big amount of data to get required number of blocks.
Make it possible to change default block 128MB, it will allow to much
easier change number of data file blocks and hopefully increase test
speed.

Closes #101
Update readme - shorter with link to documentation
Merge pull request #102 from ravwojdyla/fix_travis

[#101] Add block size parameter for put operation on minicluster
Improve release script

 * use nice set for error checks
 * improve arguments checks
 * set trap for error
 * remove temp files on error