plainbox:commands: bump copyright

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
plainbox:commands: unify copyright dates and fix newline inconsistencies

This patch makes sure that all of the command modules have an
identical-looking copyright header. All of them claim copyright 2012-2014
and use consistent spacing

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
plainbox:commands: ensure final newline is present

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
plainbox:commands:startprovider: correct GLPv3+ to GPLv3

This patch changes the license of the startprovider command to be GPLv3
but "not later". It must have slipped past the initial re-licensing we
did a while ago.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
plainbox:commands:startprovider: fix sphinx header syntax

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
plainbox:commands:session: remove duplicate SessionCommand from inv_session

This patch removes the copy of the session command (the argparse UI)
from the inv_session module which ought to hold just the invocation code.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
{plainbox,checkbox}: load providers lazily

This patch eradicates the concept that provider_list is loaded somewhat
early in the startup of all command line tools and then gets passed around
everywhere it might be needed.

This is wasteful (as not all commands even need to know all providers)
and makes the tool seem less responsive by delaying the time first output
is printed by a noticeable amount.

Instead, a callable gets passed and calling that callable for the first
time actually triggers the loading. Subsequent calls are free but nobody
is calling this more than once anyway.

Several pieces of the code were adapted, specifically all commands just
pass this through while all invocations (the other part of a command
that is used when the command is actually asked to perform something)
were taught to store the loader and provide the same 'self.provider_list'
lazily.

Several tests were updated to pass a callable instead of a list but
otherwise nothing major is being changed.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
"automatic merge by tarmac [r=roadmr][bug=][author=zkrynicki]"
"automatic merge by tarmac [r=kissiel][bug=][author=zkrynicki]"