Introduce lazy sessions

Session contexts are only created when requests actually change data,
instead of creating contexts whenever a session starts.
Cleanup usage of boost optional
Merge pull request #277 from bastih/feature/lazy_sessions

lazy sessions
Merge remote-tracking branch 'upstream/master' into dynamic
Fixed floating point arithmetic.
New Mapping.