Optimized List_clear_destroy
Assert that `list' is not NULL
Add `List_check' macro to check valid state of list parameter