Fixed double messages issue. / Done some cleaning in the code.

Should address #1446 , #1695 and #1223

What was done so far:
- Using now handleSuccessAPI and handleFailedAPI to handle success and failures of doRequest();
- Removed all messages id's - This is not necessary anyome. Added a hash function so we can generate a unique id for any message. This way we only have to change the message class (error, warning etc) when needed and send the message. The old same message will be overwritten.;
- Removed "communicate_api_failure" function();
- Changed all calls to "show_api_messages" to call handleSuccessAPI instead (the success cases);
- Tested exercises and video downloads, no duplicates so far and the messages show properly;