init
WIP
A draft for pythran-replay tool.

How to use the tool?
* Copy the benchmark and the pythran-replay script in the
  pythran working space, and the run the script.
* BUG: the program seems not runnable all the time. There
  are still many work on it.
The interface of the program is changed.

* Instead of establishing benchenmark folders,
  this tool now take any file with pythran export as benchmark.

How to use this program?

- Copy the script pythran-replay into the pythran working space.
- ./pythran-reply <pythran_file> -s <setup> <statements>
 -n <run_counts>

* TODO: option [-r] from a commit to annother, with a certain steps
  between each two commits.
Basic interface established.

To use this program, now there are three ways to select commits.
- from a commit to another, with steps between commits.
- begin with a commit, take another after step commits. And in total n commits taken.
- run for a specific commit.
Add logging for the script.

* This commit only give a rough idea of logging,
  further cases will to be concerned.
Add results plot and accomplish the user interface.

results plot:
* plot the results with X axis as commit_time, Y axis as best_execute time.
* save plot locally in format .png, and the figure's name is the branch name,
  which are to be improved.

interface:
* The option -r is changed for the same as timmit.
Change from tic-toc to timeit and add show option for user.

* The tic-toc way is share the same setup statement, this
  save a little time, but may cause problem. However, with
  the timeit, we have much less things to concern.
* To show the plot figure after execution, add --show on the
  command line.
Add --repo_path option and remove normalize function.

* For adding this new option, the REPO has to be declared in the
  "__main__" as a global variable rather than put if ouside.
* The normalize function seems no longer interesting for plotting.
Simplify commits selections and varify input by re.

* the commits selection is now taken by the option --range
* the option --count_range is still keeped for convinience.
Add command line restriction and pythran error msg management.

* Verify if input benchmark file exists
* Verify if input commit(s) exist in the given branch
* Replace sys.system() by commands.getstatusoutput()
* Add option -q(--quiet) to avoid pythran msg output
Add timeit exceptions detection, change image saving name.
Accomplished reports building

Other changes:
* fix time zone bug
* adjust plot axis
Add basic info in the report & add compile plot in the figure
Add replot result program.
Add multiple time evaluations

* The change includes: results dict, report, plot
Add config and simplify the code.

* Add config parser
* simplify the code(function not changed)
* simplify log setting, remove the date and time part
Add absolute position plotting
Bug fixed by forking process for each timeit!

* Separate the environment for each timeit, this may use more
  system ressource but it has fixed the bug that the program
  can not distinguish compiled modules of different commits!

* This method also helped to prevent the memory from incressing
  after each timeit. (Because the timeit module seems not managing
  collecting data after being called. For example, nqueens can
  exhaust as many memory as we have if the number and repeat
   are not low)
Delete useless curves on plotting

* worst, mean, median...