Added verbose functionality to is_compatible

I've added some optional functionality to let the user know why two cubes have failed the is_compatible test. I'm not convince that the logic is the most graceful way to do it. I was trying to keep the verbose options out of the way so that it didn't compromise the efficiency of the unverbose functionality - but maybe that isn't an issue. I also wasn't sure weather to raise the differences as an error (in which case the code stops before checking other metadata, or just printing. In the end I went for a warning.