Don't create temporary fake checklist in order to get default

use xblock's class based access method
Follow almost_equal pattern

Allow optional arg to give tolerance for equality test rather than
hardcode the tolerance.
Use unit test almostEqual for datetime comparisons
Code review cleanups

Remove obsolete comments and lines.
Raise same exception rather than a new one.