Support for automatic activation of profiles via new `:active?` expression

My immediate use-case for this feature is to be able to automatically activate different profiles depending on which OS lein is running.

I opted for a more general solution so that the user can use any activation predicate.

As for the syntax, I just picked one approach of may options. Instead of using :active? we could have used it as metadata ^{:active expr }, which is probably more "correct", but I thought it added quite a bit of noise to the project definition (specially for  non-Clojure experts)

I also added a pointer on PROFILES.md to the `with-profile` docs, because that page didn't say anything about prefixing profile names with `-`/`+`.

Thanks,
Fernando