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

Add new method to Request object to set the user's IP address based on whether or not there is a X-Forwarded-For is present.

Also, refactor the SpamCheckService to have the ip address and user agent passed in rather than pulling them directly from _SERVER. This included updating the two usages of SpamCheckService::isCommentAcceptable to pass in the ip address and user agent.
Refactor Forwarded and X-Forwarded-For header processing into new Header class, and update Request class to use this new class.
Normalize the key names when dealing with kvp entities in a header
Make Request setClientInfo() use normalized key names to retrieve original client IP address and User Agent
Unit tests for new header class.
Fix merge conflict with master
Add back include for Header class.

Wasn't paying attention to what I was doing when I fixed the previous merge conflict, and removed this line.
Merge branch 'JOINDIN-475' of https://github.com/adear11/joindin-api into pr122
Provide getClientIP() & getClientUserAgent() to access the protected properties in Request.
Do not assume that 'REMOTE_ADDR' and 'HTTP_USER_AGENT' exist in $_SERVER.
Lowercase the keys from buildEntityArray and do not assume that 'for' and 'user-agent' exist.
Put back accidentally removed code.
Do not assume that X-forwarded-for has an ip address set.
Merge branch 'pr122'
JOINDIN-475 #close Fixed.