Use frame objects in AnalysisDataModuleInterface.
Instead of passing raw pointers to the internal data in the public
interface, use wrapper objects where the individual values are accessed
through accessor methods. This makes it easier and more flexible to
change the internal data representation without any code changes in
classes implementing this interface (recompilation may be necessary
because of inlined functions, though). Similarly, it is easier to
add/change information that is passed through the interface without
touching existing code.
Also added some additional documentation for functors used in analysis
data unit tests.
Part of issue #827.
Change-Id: I08d5b9719c0a14040c3172de39c8620d870382af