Expand profiles before [un]merging them, re #1421

This mainly addresses the fact that the following two commands generate
different output:
  $ lein pom
  $ lein with-profile default pom
I believe the problem also affects uberjar, since both tasks unmerge
:default prior to doing their thing.

Version 2.3.4 generates the same output for the above two commands,
because it doesn't expand profiles in the with-profile task, as master
does. So this change attempts to only deal with fully-expanded profiles
when [un]merging them.
Minor formatting fix
Fix bug where use of :to-dir option with an existing directory does not generate an error
Handle :force option in ->files function
Update help text for -new- task
Fix executable test - add force option since test is being run in system temp directory
Create new tests for use of --force option
Merge remote-tracking branch 'jcrossley3/expand-profiles'

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Merge pull request #1486 from mpblair/force-new

Add support for option to force execution of lein new when target directory already exists
added group-name to templates.clj
Merge pull request #1489 from CraZySacX/group-name

Add group-name to templates.clj
Make Leiningen (more) Eastwood-friendly.

Still get a couple warnings... We don't really care about the
unlimited-use warnings from clojure.test, and there are a couple
warnings we get stemming from bugs/limitations in Eastwood.
Lock on *out* when printing during dependency fetches.
Document various ways to register wagon factories [fixes #1483]
Merge pull request #1493 from tobias/wagon-factory-docs

Document various ways to register wagon factories [fixes #1483]
Depend on latest Pomegranate, fixes #1447.
Flush output of exception error messages

When running on OS X, an exception thrown in a plugin was resulting in
no output from lein.  Adding the flush ensures the output occurs before
the process exits.