dependency.py: normalize enum-name case, allow uninstallable dependencies

To provide better feedback to the user, a new dependency source type,
FATAL, has been added.  This allows us to inform the user that the package
providing that dependency must be manually installed.