Adds :leaky and :pom-scope metadata for profiles. The :dev, :test, :base and :provided profiles are implemented in terms of these. Profiles with :leaky metadata affect the pom and jar creation. Profiles with a :pom-scope metadata of :test or :provided also affect the dependencies of a pom.
We need to revisit this in a way that doesn't involve hard-coding profile names into the jar and pom tasks. The question of whether the profile should be visible to downstream consumers should be determined by data that's part of the profile (or metadata).
Re: #1646 [ci-skip]
Sometimes we need to override *parts* of a prticular profile on a project-specific base. To a novice lein user, it is likely not clear how to achieve this. This tip points her in the right direction - using a composite profile with a "personal" part that can be overriden in `profiles.clj` to change what is in the "common" part of the profile.
While "Declaring Profiles" states that "Profiles specified in `profiles.clj` will override profiles in `project.clj`," some less attentive reader can interpret it so that *keys/values* from profiles.clj override those from project.clj, not that the profile as whole is replaced. This changes tries to make it really clear. (Of course feel free to change the wording as you see fit.)
You can now overide :default in your project.clj to change what profiles are active when none are specified. As part of this change, default is no longer used to for built-in settings; these are now stored in the :base profile. This makes it possible to override :default while still including the :base profile.
…es like the last :default change.