Handle Options for the Benchmark script

First commit, the executable handles the options passed from command line. And does just that
Multi Threaded implemention of Hello world

A Pthread implementation to create and handle N threads
Adding Read functionality to the Benchmark suite

* directory listing completed, (only list files in a directory and not recursive )
* read and write callbacks defined and depending upon io_type, appropriate callback is defined
* Read callback function has been completed ( first cuts )
* Reading works in multiple threads fine
Adding more thread callbacks

For buffered read and buffered write
Changing the name of blocks attribute to block_names attribute
Improving read and developing first cuts for write

* free
* time measurement
* Added write, but still not working
Making changes to option parser and printing help
Getting write IO operation to work

Change the options slightly to handle chunk size as an important parameter.
Adding the buffered option

TODO: buffered version of write yet to be complete
Adding Finishing Touches

Pretty printing the Throughput, data written, time taken and so on.
Pretty printing in disk_io_benchmarks - improvement
Making block size as unsinged long long
The job size was not long long in the thread struct

Because of this the number of chunks shot up every time the size was higher than 10gigs
Modifying block size to long long in do_IO
Make provisions for I/O in multiple disks
Adding functionality for multiple paths
Typo in utils.cc and utils.h
Handling multiple paths
Throughput for individual threads
Writing extra dump information to error.log
Changing permissions