Further simplification and separation of asset pipeline

- Use a Prefix decorator for AssetPipelines to keep things DRY.
- Decouple helper functions from the AssetPipeline type