Adding read/write functions to PCA class. Update PCA test.
Python bindings for KeyPoint methods

Usage:

import numpy as np
import cv2
img = cv2.imread('messi5.jpg',0)
sift = cv2.SIFT()
kp = sift.detect(img)

pts = cv2.KeyPoint_convert(kp)

kps = cv2.KeyPoint_convert(pts.reshape(-1,1,2))

overlap = cv2.KeyPoint_overlap(kp[0],kp[1])
warning corrections
Merge pull request #1224 from mbarnach:pca_io
alignment of parameters as per speclad
Merge pull request #1389 from SpecLad:merge-2.4
Merge pull request #1373 from abidrahmank:pykeypoints
Replaced Ptr with my new implementation.
Boring changes - core.

This and several following commits contain the "boring" changes required
to support the new Ptr. These are changes like:

* new T -> makePtr<T> or .reset(new T) or Ptr<T>(new T)
  (depending on the situation)
* p.empty() -> !p
* delete_obj -> DefaultDeleter::operator()

and similar changes that are numerous, but primitive.
Boring changes - imgproc.
Boring changes - highgui.
Boring changes - bioinspired.
Boring changes - calib3d.
Boring changes - features2d.
Boring changes - ml.
Boring changes - nonfree.
Boring changes - objdetect.
Boring changes - photo.
Boring changes - softcascade.
Boring changes - stitching.