Add possibility to alter the block replacement in custom flows

Current state is that even if you provide your own flow and give it a
type other than "css" or "js" it is replaced with "undefined".
This is not too useful and renders the feature to add your own flows
useless in the first place.

This change alters the `FileProcessors.prototype.replaceWith` so that
if there's `replace` property defined on block(string/function) it
uses that to replace the block.
Fail to do the blockreplacement in a reasonable way

Here's a hack