Add a SecurityHeadersFilter with security headers set

Add documentation, refactor the code and add more tests
Merge pull request #2568 from wsargent/fix-2567

Add a SecurityHeadersFilter with security headers set