cli.py: Add --build-manifest to build command

This allows the user to opt in generating a build manifest containing
all of the elements and sources used for their build alongside a buildstream
version and build date/time.

_manifest.py: New module to provide functionality for producing a
manifest from a collection of elements.

source.py: Add _get_element_index() to allow access to
Source.__element_index.
3 files changed