Account for requests without regions: #69
Account for requests without regions: #69

This version doesn't save requests with invalid zips, but now works for
out-of-all-regions zipcodes and those in inactive regions.  Do we want
to save requests with invalid zipcodes?

I construct a serial number using the state for requests without
regions.  The count is for all requests outside of the region system,
not by state.  I can change that if desired.  It would involve passing
the state to the counting function as well as the region.

Most of this diff is just moving code around and adding checks for
region where necessary.

OpenTechStrategies/smoke-alarm-portal,OpenTechStrategies/smoke-alarm-portal,OpenTechStrategies/smoke-alarm-portal,OpenTechStrategies/smoke-alarm-portal