Greenfield (town), Franklin County, Massachusetts