BUG: recognize M8[ns, tzstr]
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

ATM `dtype == "M8[ns, UTC]"` fails while `dtype == "datetime64[ns, UTC]"` succeeds
Is this needed to support? (what's the use case?) 
M8 is a numpy short-hand name, but tz-aware dtype is not a numpy dtype. lgtm.  > see comment

I find this ok, all we are asserting here is that `datetime64==M8` which is true > Is this needed to support? (what's the use case?)

needed?  No.  convenient?  yes.

Until recently there as a test that checked `dtype == "M8[ns, US/Eastern]"` that would have failed if it wasn't missing the "assert". What is the convenience? Just less typing?

 > What is the convenience? Just less typing?

Sure.  Or maybe "lease surprise" is more accurate.  e.g. `is_dtype_equal(dtpye, "M8[ns, US/Eastern]")` is True ATM while `dtype == "M8[ns, US/Eastern]"` is False OK, but then it is fixing a bug, not providing something for convenience. 

Eg, it seems that `pd.Series([1, 2, 3]).astype("M8[ns, UTC]")` already works. Then of course `.dtype == "M8[ns, UTC]"` should also work. 
Do you know if it is tested that `astype` / `pandas_dtype(..)` works with this notation? If not, can you add a test for that?
 > If not, can you add a test for that?

added