Add support for loading external plugins.

Also, app.run() now returns an exit code -- requires further
udpates to pass the exit code back from plugins.

To load external plugins:

<pre>
p = MyPlugin()
app = avocado.cli.app.AvocadoApp(external_plugins=[p])
app.run()
</pre>

and here's a MyPlugin example:

<pre>
import sys
import avocado
from avocado.plugins import plugin

class MyPlugin(plugin.Plugin):
    def configure(self, parser):
        myparser = parser.add_parser('hello',
                                     help='Hello World!')
        myparser.set_defaults(func=self.hello)
	self.enabled = True

    def hello(self, args):
        print 'Hello World!', args
</pre>

And how to execute:

<pre>
python myplugin.py hello
Hello World! Namespace(func=<bound method MyPlugin.hello of <__main__.MyPlugin object at 0x1574f90>>, log_level='', logdir='', verbose=False)
</pre>

Signed-off-by: Ruda Moura <rmoura@redhat.com>