Fixed serialization of CM_Usertext_Filter_Markdown_UserContent

- Added class CM_Usertext_Filter_Abstract and refactored filters accordingly
- Added method CM_Usertext_Filter_Abstract::getCacheKey() to return filter configuration
- Used in CM_Usertext_Usertext::transform() to generate a cache key for the filter list
- Moved logic to a new method CM_Usertext_Usertext::_getCacheKey()