Extensive cleanup of Region

1) Unbox datatypes Double => double
2) set variables to final where possible
3) re-factor some of the annoyingly rote parsing out into another class