syslog: fixes and updates to rsyslogd and logrotate.
Adjust lograte size to prevent a mismatch.
Change rsyslogd size to be actual size instead of a naive value.
Potentially fix bug #13699000 by increasing the maximum number of TCP sessions.

Rsyslog was rejecting agents from connecting because of MaxSessions, which caused those
agents to go into spirals of trying to restart their rsyslog worker over and over,
which then generated tons of DEBUG level logging on machine-0 because of the workers
restarting, which then spammed the log file a lot.
Merge branch 'master' into rsyslog-max-connections-1369900

Small conflict that can be trivially fixed.

Conflicts:
	utils/syslog/config.go
initial commit
added check and tests to stop add-units earlier if the destination machine doesn't exist, lp:1384732
extract relation membership caching into new type; not hoked up yet
extract relation membership caching into new type, which I remembered to add this time; not hooked up yet
figured out better interface
Refactr peergrouper to export less API

Changes where made to make all of peergrouper changes external
but, after comments from @rogpeppe the changes have been
reworked to only export the necessary API from tests
and make a peergrouper_test packages only including the
part of the code that is indirectly using dummy provider
and therefore causing an import cycle when apiserver is
imported from state
Removed unnecesary commented code
use errors annotate instead of fmt.Errorf
Merge pull request #968 from wallyworld/release-tools-path

tools tarballs now live in a directory named after their stream

Previously, tools tarballs used to all be put into a directory called "releases".
The QA team want tools tarballs instead to be located in directories named after their stream eg proposed, testing, released etc. The paths to the tarballs are in the index.json files, so existing metadata will work still.

Newly generated metadata using the generate-tools plugin will now generate the new paths.

These changes are largely mechanical - many test methods now take a stream parameter so the correct tools path can be used.

Fixes: https://bugs.launchpad.net/juju-core/+bug/1384979
RelationContext now uses cache internally; uniter now hooked up and tested; context tests not yet updated
Add backwards compatibility to generate-tools; add capability to not validate env credentials when running metadata commands
Addressed @davecheney comments
Go fmted
Update charm interface implementation.
fixed some tests, commented out others, will reinstate soon
add missing test case
Small tweaks