Allow the Swift module name for a component to be specified on the `library` or `executable` extension. Also changed the default module name to be the capitalized project name (it was the project name previously).
Changed the C++ executable plugin to allow the source files of the executable to be declared and queried. Adds an `executable` extension to the project that build logic can use to declare the source files. Also change the behaviour so that the convention location is only used if no source locations are defined, similar to how the Swift plugins behave.