JOINDIN-475 Use Forwarded and X-Forwarded-For headers in Akismet check

JOINDIN-475

Added a new Header class that represents a Header and all of its values. This class is used by the Request class to properly set the source IP by looking for either a Forwarded header or a X-Forwarded-For header. If the Forwarded header is present, it also attempts to set the User-Agent from the values it contains.
How's about an interface representing a commenting user? That would be more extensible in the future and so this method signature wouldn't have to change if we suddenly need to judge whether something's spam on another service