Flexible initialization for Menpo Fitters

This PR contains partial work related to #297 and it is ready to be merged in.

In particular, it changes the way in which Menpo `Fitter` objects fit images. The new syntax is a lot more flexible and less tied up to the actual `Fitter` object (consequently, it is also a bit more verbose):

    # initialize from ground truth shape with noise
    fitting_results = []
    for i in test_images:
        gt_s = i.landmarks['PTS'].lms
        s = fitter.perturb_shape(gt_s) 
        fr = fitter.fit(i, s, gt_shape=gt_s)
        fitting_results.append(fr)

    # initialize from given bounding boxes
    fitting_results = []
    for (i, bb) in zip(test_images, bounding_boxes):
        gt_s = i.landmarks['PTS'].lms
        s = fitter.obtain_shape_from_bb(bb) 
        fr = fitter.fit(i, s, gt_shape=gt_s)
        fitting_results.append(fr)

    # initialize from given shapes
    fitting_results = []
    for (i, s) in zip(test_images, initial_shapes):
        gt_s = i.landmarks['PTS'].lms
        fr = fitter.fit(i, s, gt_shape=gt_s)
        fitting_results.append(fr)

    # initialize using face detection
    fitting_results = []
    for i in test_images:
        # this remains to be explored, could be as easy as just using opencv here
        bb = face_detection_funtion(i) 
        s = fitter.obtain_shape_from_bb(bb) 
        gt_s = i.landmarks['PTS'].lms
        fr = fitter.fit(i, s, gt_shape=gt_s)
        fitting_results.append(fr)

Note that in all case `gt_shape`, i.e. the ground truth shape, is an optional kwarg as we might or might not have access to it.

Finally, this PR also changes the property `fittings` to its new name `fitting_results` across `Fitter` and `Fitting` objects.

After properly testing it, this PR should be pulled in ASAP since @piotrbar needs it for his work.