Separated file for Objects Snapshots from file for Objects definition.

This was done to avoid include confilicts, circdeps and other problems in headers.
Removed snapshot definitions from Objects.(h/cpp) files.

Implemented creation of snapshots in this file.
Fixed virtual getSnapshot definition to able to create snapshots with relative position.
Added Objects::Snapshot classs implementation.

Added SnapshotVisitor interface definition.
Added missing modules to buildsystem.