1116060 - Fix handling of failed package installs

https://bugzilla.redhat.com/show_bug.cgi?id=1116060

The main fixes here are in handlers/
- rpm.py
- rpmtools.py

and in extensions/admin/rpm_admin_consumer/
- package.py
- package_group.py

In the CLI command, the succeeded() method was updated for better handling of reported:
- exception
- mixed succeeded and failed package installs. 

In *rpmtools*, the transaction members are inspected after the transaction is processed.  the install, update and uninstall methods converted to return a dict which includes an additional *failed* list.  The *failed* list is inspected by the *rpm* handler to determine the overall status of the request.

I also replaced epydoc tags with ReST tags in docblocks.

I also fixed progress reporting for group install/uninstalls.

--------

As for the unit tests .. they are, like may in pulp, more integration tests than unit tests.  That said, I do not want to delay the 2.4.0 BETA build so just updating what is there as best I can for now.
It looks like all three ``succeeded`` methods in this module are exactly the same, with slightly different messages. "Install Failed" vs. "Update Failed", etc. The logic seems to be copy-and-paste. You can punt on this for now if you want, since I know it pre-dates this work effort, but this seems ripe for consolidation. 1/3 the code to maintain and 1/3 the tests.