Reuse Assetic's BaseAsset.

This could create some issues with the private members used there, but
reduces code duplication enough that it's worth trying for now.