Use std::make_shared<> to create shared pointer

Using std::make_shared<>[1] will safe one allocation compared
to std::shared_ptr<T> tmp(new T(...)).

[1] http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared
Implemented use of "boost::optional" for some of the instances where "boost::none_t" was already being used:
mapping, unit, repository.
Not implemented for many yet to clarify cases: "dataType", "labels", "extents", "units", "values", "link", "extent", "metadata".
Merge pull request #128 from balint42/optional_branch

Implemented use of "boost::optional" for some more cases

Part of issue #86
Merge pull request #127 from gicmo/make_shared

Use std::make_shared<> to create shared pointer
ImplContainer behaves like bool and like boost::optional

It compares to boost::none and has isNone() method now.
[test] Complete tests for DataArray

This is part of issue #25
DimensionHDF5: Fix broken switch (missing break)
[test] DataArray: Enhance Dimension tests
Just some whitespace fixes. No logic change.
Merge pull request #129 from gicmo/balint_new

ImplContainer optional semantics and DataArray tests
(merge & rebase by @gicmo)
getEntities simplified, no try-catch
ImplContainer: Add backend() method for backend access

With backend the pointer managed by the shared_ptr<T> is
meant. The validity of the shared_ptr is checked before it is
returned and an exception is thrown if the pointer was found to be
invalid.

Part of fixing issue #76
Exception.hpp: Add missing sstream include
Replace method access via impl_ptr with calls to backend()

Access via backend() is guarded there this closes issue #76

Replacement was done via:
find . -type f | /usr/bin/grep -E '^.*[h|c]pp$' | xargs perl -i -p -e 's/impl_ptr->/backend()->/g'
ImplContainer::nullify() new function to nullify the impl_ptr

Nullifying means setting to nullptr ;-)
Merge pull request #130 from gicmo/impl_ptr_guard

Guard access to the shared_ptr via new backend() method (issue #76)
Use ImplContainer::nullify() instead of setting imp_ptr directly
ImplContainer::impl() return reference and add const version

Return a reference instead of a copy
Access ImplContainer's impl_ptr only via impl() everywhere
Minor fixes to DataArray::dimensions to work with new getEntities