Refactoring changes for testing resource compatibility.

Here are the basic changes:

- The map keeping track of what's compatibile and what's not has been moved to its own class  (CompatibilityInfoMap), rather than living only in RestLiResourceModelCompatibilityChecker.

- The meat of the IDL compatibility checking has been moved to ResourceCompatibilityChecker. It also now checks type compatibility by using Swee's type compatibility checker, and checks compatibility of schema types rather than just a string-equality check. To deal with eventual snapshots, it now keeps track of two DataSchemaResolvers. If there are the same then the behavior of ResourceCompatibilityChecker is essentially the same as it was before (there are some small differences in how messages are displayed). If there are two, however, then the checker will also be able to check the compatibility of NamedDataSchemas that are not embedded in the IDL.

- Most tests have moved from TestRestLiResource... to TestResource... and they test ResourceCompatibilityChecker directly.  I also modified two tests so that they test NamedDataSchema compatibility as well as idl compatibility.

RB=167705
R=jbetz,slim,si-dev,kjin
A=jbetz