fix the dates

the main change is updating the window logic to be valid according to
the period that ends N months from the anchor date as per
https://docs.google.com/a/dimagi.com/document/d/1Wu3vZWTbVTYw_oFH10SwgOuY37e7iMyCuHDbyX2zM_E/edit

also includes a fairly sizeable refactor including:
- pull status, preg_month and child_age into properties
- make it clear in the row it is only one month/year
- make datespan calculated from the month/year
- get rid of window entirely
- make end be the first of the next period and update filters to not be inclusive
- fixing all tests
- updating calcs (that i knew about) to correctly handle the new date ranges

the meat is in 5d56c1618ab4b37874da258d29717e28f9917788 and then there's a long tail of test fixes
It looks like `self.edd` could be `None` here if it's ever possible that `self.dod > self.reporting_window_start and self.edd is None`. Is that possible? Would that be a problem?