Switch from static to instance API for PackageManagerProps + added PackageManager.props

This is to generalize working with package management. Most clients should not explicitly refer to either PubProps or BowerProps, but use polymorphic PackageManager.props -> PackageManagerProps instead.