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
ImplContainer: change impl_ptr visibility to private

Access is done via impl() for the shared pointer itself or via
backend() if the managed pointer is wanted. Latter access is
guarded, i.e. throws an exception if impl_ptr is empty.
Merge pull request #131 from balint42/fix_getEntities

Fix getEntities(). Closes issue #122.
ImplContainer: Add brief docs for backend() & impl()
Fixed createDimension & added appendDimension
Removed "try-catch" from DataArray::dimensions
Extended tests for createDimension & appendDimension in DataArray
Merge pull request #133 from balint42/fix_createDimension

Fix createDimension

LGTM
Merge pull request #132 from gicmo/impl_ptr_private

Make ImplContainer's impl_ptr private

:+1:
[win] Add NIXAPI to Dimension classes (fixes build)
Merge pull request #135 from gicmo/win32fixes

Add NIXAPI to Dimension classes to fix the build on windows