Add support for 'use MyApp::Cmd -ignore'

This hopefully solves the issue f00li5h was whining about
under which packages in the ::Command::* namespace
  ( eg: MyApp::Command::bollocks::Plugin::YourMomma )
are mandatorially interpreted as commands themselves, and assumes
anything discovered in that namespace that doesn't meet our definition
of a "command" was probably intended to be a command, and is merely
broken in some way.

This solves the issue by requiring each and every package that is
knowingly expected to NOT be a command to include the stanza
  'use MyApp::Cmd -ignore;'
Which registers that package as something to not interpret as a command.

This is mostly just sugar syntax for :

  use MyApp::Cmd;

  MyApp::Cmd->_register_ignore( __PACKAGE__ );

And you can thusly force the ignoring of any package anywhere if you
really feel the need ( for instance, if somebody releases a ::command
    that you hate so badly you want to forbid your app from ever
    loading it, you can put that in there too ).

At this commit its not really tested yet, but its here for concept
purposes.

This approach seemed less pesky than stuffing arbitrary subs in
packages, and less pesky than requiring some other inheritance thing,
  and is probably on the whole far more practical.

Perhaps it would have made more sense to stuff this ignore list on the
MyApp::Cmd package itself via @MyApp::Cmd::IGNORED, but the
implementation specifics that make that work are a bit beyond me so I
used the technique I know works:

  my %ignored;
  sub somethingorrather {
    push @{ $ignored{ $classname } } , 'thing to ignore ';
  }

This does somewhat have a global-ish nature to it, but its not really
that bad.
Add tests for the -ignore function.

Results behave as expected.
Adding basic documentation for the -ignore feature via tutorial.

Covers ignoring a single command/module, as well as augmenting the App
wide should_ignore method. More to come, but this is a good start I think.