Add a :project profile

The :project profile is not un-merged when building a jar or generating
a pom, so can be used to alter the basic layout of a project.

This allows plugins such as cljx and cljsbuild to provide profiles that
the project can choose to use to set source-paths, etc, leading to less
error-prone configuration in common use cases.

Fixes #1665
Apply profiles from middleware in main

When loading the project, ensure that profiles contributed by middleware
are correctly applied.
Fix with-profile test
Fix pom for case with added profiles
Add simple test for :project profile in pom
Add :project profile to PROFILES.md
Expand builtin profile docs in README
Merge remote-tracking branch 'hugoduncan/feature/add-project-profile' into profiles-from-plugins
Rename :project profile to :downstream.
Make leiningen.core.project/read init the project.

Add a raw-read alternative that reads without initializing.

This solves a certain chicken/egg problem with wanting to read profiles
from plugins before the plugins had been loaded.
Improve docs for default profiles.
Revert "Apply profiles from middleware in main"

This reverts commit fe1be7d2dcc36d11532554f437aaa3b6e2349c5e.

Conflicts:
	leiningen-core/src/leiningen/core/main.clj
	leiningen-core/src/leiningen/core/project.clj
Fix a test.