Extended ActionFilter to also enable filtering the response side

Enables filtering the actions on both sides - request and response. Also added a base class for filter implementations (cleans up filters that only need to filter one side)
merging it means there's no proper handling for implementation that accidentally/intentionally call continueProcessing multiple times. Have two different chain instances keeps it clean and safe in that regard. The other option is to merge the code, but still create separate instances, but that's ugly and creates a mess (having single instance that behaves differently in different scenarios)... hence the two separate internal implementations - it's clean.