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'
Merge pull request #130 from gicmo/impl_ptr_guard

Guard access to the shared_ptr via new backend() method (issue #76)