Added support for newer revisions of SAMD21G18A and created a common chip architecture ID method

The current code doesn't support the latest revisions of the SAMD21 (only Rev A supported).  This commit fixes that.

Also, identifying the chip family in Samba.cpp was a performed in a few places.  This commit centralizes that function to make it easier to maintain.