Initial commit of reconstruction variance criteria
which is an addition for GRIC-based keyframe selection.

Uses paper Keyframe Selection for Camera Motion and Structure
Estimation from Multiple Views,
ftp://ftp.tnt.uni-hannover.de/pub/papers/2004/ECCV2004-TTHBAW.pdf
as a basis.

Currently implemented camera positions reconstructions,
bundle positions estimation and bundle adjustment step.

Covariance matrix is estimating using generalized inverse
with 7 (by the number of gauge freedoms) zeroed eigen values
of J^T * J.

Additional changes:
- Added utility function FundamentalToEssential to extract
  E from F matrix, used by both final reconstruction pipeline
  and reconstruction variance code.

- Refactored bundler a bit, so now it's possible to return
  different evaluation data, such as number of cameras and
  points being minimized and also jacobian.

  Jacobian currently contains only camera and points columns,
  no intrinsics there yet. It is also currently converting to
  an Eigen dense matrix. A bit weak, but speed is nice for
  tests.

  Columns in jacobian are ordered in the following way:
  first columns are cameras (3 cols for rotation and 3 cols
  for translation), then goes 3D point columns.

- Switched F and H refining to normalized space. Apparently,
  refining F in pixel space squeezes it a lot making it wrong.

- EuclideanIntersect will not add point to reconstruction if
  it happened to be behind the camera.

- Cleaned style a bit.
Optimization for reconstruction variance

Achieved by replacing SVD-based pseudo-inverse with
an eigen solver pseudo inverse.

New function works in the same way: it decomposes
matrix to V*D*V^-1, then inverts diagonal of D
and composes matrix back.

The same way is used to deal with gauges - last
7 eigen values are getting zeroed.

In own tests gives approx 2x boost, without
visible affect on selected keyframe quality.
Keyframe selection code cleanup

- Updated comments in code.
- Removed currently unused functions.
  Actually, they'd better be moved to some generic
  logging module, but we don't have it now so was
  lazy to create one now. Could happen later using
  code from git history
- Renamed function to match better to what's going
  on in it.