Define a BuildStream project structure for targeting multiple hardware devices for maximum reusability
This encompasses many aspects:
- A consistent naming structure for each of the elements (For instance, the use of `linux` to refer to the kernel across platforms)
- A directory structure for a given BSP
- Organisation of discrete BuildStream BSPs, how they should be dependent on each other.
When defining this structure, it is important to make the distinction between a BuildSteam *project* and a *repo*, [see @tpollard comment](https://gitlab.com/celduin/crash/bsp-playground/example-overlay-app/-/issues/6#note_336580321):
- A BuildStream project is defined by a single project.conf. The may be many projects in a repo, and a project may span many repos.
- Traditionally, one BuildStream project lives in one repo.
issue