Tracking Completely Restructured.

It was getting too cluttered adding everything in one function, so I have completely restructured them and put in new files. Tracking is still accessible using `Image.track`.

New Features:

Users can specify more parameters which are much more useful in tracking.

For CAMShift Tracking:

- lower range value for thresholding
- upper range value for thresholding
- number of frames to be backtracked.

For LK Tracking:

- maximum number of corners to find features
- quality level of corners
- minimum distance between two corners
- size of the block
- size of search window
- number of pyramid levels

For SURF Tracking:

- maximum distance between two samples for them to be considered as in the same neighborhood.
- The number of samples in a neighborhood for a point to be considered as a core point. 
- distance based thresholding of points

**Docs Improved.**

Added new tracking algorithm.

**Median Flow Tracker**. It is much more stable and better than LK tracker. Here's a video where I have implemented it. http://youtu.be/ef7wj7n7qSQ

Using MF Tracker:

    ts = []
    img.track("mftrack", ts, img0, bb, numM=10, numN=10, winsize=10)

Optional Parameters for Median Flow Tracker:

- numM     - Number of points to be tracked in the bounding box
                   in height direction. 
                
- numN     - Number of points to be tracked in the bounding box
                   in width direction. 
                  
- margin   - Margin around the bounding box.

- winsize  - size of the search window at each pyramid level in LK tracker (in int)