Don't allow resource titles which aren't strings

It was possible to create resources whose titles weren't strings, by
using a variable containing a hash, or the result of a function which
doesn't return a string. This can cause problems resolving relationships
when the stringified version of the title differs between master and
agent.

Now we will only accept primitives, and will stringify them. That is:
string, symbol, number, boolean. Arrays or nested arrays will still be
flattened and used to create multiple resources. Any other value (for
instance: a hash) will cause a parse error.
Update main readme to have links to contrib and dev docs

Our README currently rendered on github doesn't show people how get into
the contribution process.  I've added a very small section to point to
the other doc files that exist in our repositories.  This was based on
feedback at the Community Leadership Summit 2012.

Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>
Switch Rakefile off deprecated rake/gempackagetask

Fixes #15463
tidy.rb: Added info about the default value of 'type' to the doc.
12465 : update the service to use its own pid at /var/run/puppet.pid
12465 : update the spec to make sure upgrade happens seamlessly.
Reduce stubs and expectations on settings

Many tests set stubs or expectations on configuration values. This is
unnecessary, as settings are reset before each test. Because creating a stub
stubs out the entire value method on settings, stubbing any individual setting
interferes with retrieving any other setting. This makes for weird errors and
fragile tests. This commit changes most cases to just set each setting
directly.

Expectations on settings were often used to verify that a setting is used.
This is not a good way of testing this, since it checks that the value is
accessed but not that it is actually used correctly. Most expecations on
settings are better expressed by changing the setting and then verifying a
returned value.
Fix specs for windows

The previous commit cleaning up stubs in settings caused some new failures on
Windows. Actually using the settings object causes paths to get expanded,
which made expectations with posix paths fail on Windows.
Use Puppet::Util to check absolute path in ca

This check was only correct for posix. This makes it cross-platform.
Fix paths for pidlock tests for windows
Remove 'pending' status for getting SSL::Host

A recent fix for Windows caused this test to start passing.
Use rspec 2.11 compatible block syntax

In rspec 2.11, expectations on a block must take the form of expect...to or
lambda...should. Other combinations of those are no longer accepted. This
commit converts all mixed cases to use expect...to, as it seems to be the
preferred syntax now.
Merge branch '2.7.x' into 3.x

* 2.7.x:
  tidy.rb: Added info about the default value of 'type' to the doc.
  Switch Rakefile off deprecated rake/gempackagetask
  Update main readme to have links to contrib and dev docs
Merge branch 'fixpid' of https://github.com/vrthra/puppet into 3.x
Fix buggy resource title tests

For some reason, these weren't actually asserting anything, and were
swallowing errors. Oops!
Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x
Merge branch '2.7.x' into 3.x

* 2.7.x:
  Use rspec 2.11 compatible block syntax

Conflicts:
	spec/integration/faces/ca_spec.rb
	spec/integration/network/server/mongrel_spec.rb
	spec/unit/application_spec.rb
	spec/unit/face/help_spec.rb
	spec/unit/network/handler/fileserver_spec.rb
	spec/unit/parser/functions/create_resources_spec.rb
	spec/unit/provider/nameservice/directoryservice_spec.rb
	spec/unit/type/file_spec.rb
	spec/unit/type_spec.rb
Revert "Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x"

This reverts commit 7fe3bbb75abb576b7ae9b129ea2c4dd924912ff0, reversing
changes made to fe64cdeaa210534e64c37caa47a86df070da9b26.

Accidentally merged this into 3.x when it was mean to go into 2.7.x.
Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 2.7.x
wip