badge consistency check - verifies that badges are in the right order/etc

adds a set of checks that can be run either from utility.py or (in the future) via periodic task

I will use this check to verify that my badge fixup script change works correctly.

Eli can you put some eyes on this and let me know if I'm missing any weird edge cases with the checks or not?

\m/
-Dom