Unpurchased items in the shoppingcart should be removed if the enrollment period has closed

@afzaledx 
@chrisndodge Kindly review the changes for WL-164.

Thanks
I'm nervous about duplicating this check here.  We do a very similar check in `CourseEnrollment.enroll` when the `check_access` flag is passed.  I think it would make more sense to consolidate the checking logic into a class method of the `CourseEnrollment` model, then call it here to determine if a user can enroll.