Add blank=True and default="" to engine_xml field in Lab
Add play_count and is_finished to UserSave

play_count is used to store all users’ play count
is_finished is used to store state whether the user has finished the current progress
Add PlayLab view to increment the play_count

The view uses custom serializer to handle the validation.
Add FinishLab view to update is_finished flag
Merge branch 'feature/user-attempt'