exercise.class: Report invalid course IDs

Throw an expection when the given construction parameter is not a valid
course ID.
exercise.class: Explain the delete method
Minor merge with branch.
Fixing commit adc92336aeae61623b095759b89333457e17d0a5
Importing changes from branch mine, exercise model_type
Updating from 1.9.x
Adding new type called captch (merge from 1.9.x)
Adding new DB setting.
Updating vendors
Updating composer.
Merge pull request #100 from diegoe/exercise_fixes

Exercise fixes
Merge controllers from branch mine
Using Flint as a base controller, using flint in order to cache routes.
Updating vendors
Updating composer
Merge branch 'master' of github.com:chamilo/chamilo-lms
Partial merge with mine