Support providing abstract with AbstractProvider role

This patch adds AbstractProvider role to the dzil plugin roles and allows plugins to provide dist's attribute instead of the hardcoded default that reads the line "# ABSTRACT: " from the main module, which is left here as a default behavior when there's no provider (and/or no provider returns any abstract info).