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

@afzaledx 
@chrisndodge Kindly review the changes for WL-164.

Thanks
@ormsbee what do you think of this? We're having a problem with that circular reference that existed in CourseEnrollment.enroll which needs to get to has_access(). Using some IoC pattern seems to be the right thing to do on this.

I'll also mark the other side of the change.

@afzaledx FYI