Issue 1286 - Add a content type enum for use with FilterEngine

As I pointed out in another comment, I think we should actually throw `GetContentTypeString` to ensure that `contentTypeStr` cannot be empty. Note that we didn't have a fallback for bogus content types before here, so it doesn't change anything even if we pass in an empty string.