Ignore .DS_Store
API: Use config / extension APIs

Overhaul of spam protection to use an extension on Form rather than the SpamProtectorManager. More fluent interface and easier to replace the built in spam protection api with an alternative.
Add basic tests
Add travis
ID can be used to validate object