Clean ngh code.

Removed system, config, and problem.
Still potential with myvector, vector, matrix, vertex and point. Replace by armadillo.
Start non-compatible intersection in mesh.

- const modifications in BIHTree and BoundingBox
- bounding box getter in Element
- BoundingBox constructor accepting list of points
Introduce EI_Address.

- introduce EI_Address in input/accessors.hh
- add method ei_address() to all accessors
- remove set_address
- modify JSON_to_storage.get_root_interface<T>()
  to create accessor directly
- modify field_formula_impl (apply change in getting address)
- update unit tests
Exception for wrong Region names.

- when region, id or region set of a filed is wrong we have to
  throw otherwise things goes wrong
Compute 1d-2d intersections directly.

- update creation of intersection obejcts in mesh
  we use ngh functions directly
- add to ngh classes constructors from element
- more general constructor for bounding_box
- use sigma field in assembly

State: compiles, runs, bad results
Linsys gets MPI_Communicator from Distribution.

- modify constructors, drop comm parameter
Add some const specifiers.

- big blocker for precise usage of const specifiers are lack of support
  in  sys_vector.hh
LinSys set_values with Dirichet constrains.

- method LinSys::set_values that automatically resolves Dirichlet
  constrains on rows and columns with negative indices. Do not work for
  index zero.

- minimalistic unit_test
Fix instability of BoundingBox::intersection

- has to use some safety factor to handle 1D and 2D
  elements aligned with axes

- BIH still do not work properly in such case
P0 noncompatible coupling

- fix Mesh::make_intersec_elements
- P0 coupling assembler object in darcy_flow_mh
  should theoretically work even for complex meshes.

Remaining problems:
- BIH tree - missing intersections
- do not detect Dirichlet sides
Extend and polish BoundingBox class

- inline most of methods
- remove set_bounds (use constructor instead)
- add methods: split, expand, longest_axis
- documentation
- full unit test
Fix usage of BoundingBox.

- use new bounding box interface
- simplification of BIGNode
- use queue of BoundingBox in BIH tree creation
- use new BoundingBox methods to simplify BIHTree
- BIHTree needs more testing yet
Armadillo optimization flag.

- use compile time flag to remove Armadillo bound checks
- complete HOWTO_test
Introduce exc_common.hh

- particular file for common exceptions
- debug stream DBGCOUT
- one variable debug DBGVAR
Fix BIHTree::find_bounding_box

- add projection_le, projection_ge methods to BoundingBox
  ... for comparison with smae safe factor as in intersect method
- use these in find_bounding_box to deal correctly with lower dim elemnts
- modified bih_tree_test (WIP)
- bih_node completely inlined
Fix noncompatible P0 assembly.

- fix noncompatible P0 assembly.
- add id() method to Element class
Minor cleanup in mesh.

- remove some old commented code
- remove or comment out some debug prints
- add missing exc_common.hh file
- remove unecessary member sigma from Neighbour class
Resurrect P0, P1 coupling and error calculation.

- make P1 working
- remove some old code
- make error calculation work
- make error calculation switch in input file
Merge branch 'master' into JB_nc_new

Conflicts:
	src/coupling/equation.cc
	src/coupling/equation.hh
	src/fields/field_interpolated_p0_impl.hh
	src/flow/darcy_flow_mh.cc
	src/input/accessors.hh
	src/mesh/mesh.cc
	src/mesh/ngh/src/intersection.cpp
	src/mesh/ngh/src/tetrahedron.cpp
	src/system/exceptions.hh
Add test for non-compatible 2d-1d coupling.