do not use class methods as it makes mocking hard

class methods really seem to confuse mock so lets not use them as it
means lots of hoop jumping and this is easier and cleaner
this also means making the date optional as we don't always need it
add now class method to SurveyDate

we don't need to mock this so it can be a class method
we always want it to be a diary day when testing correct page for week
better tests for registration start date adding
WIP send diary reminder emails
add contrib.sites