return error code on FAIL in ajax subscribe (#432)
return error code on FAIL in ajax subscribe (#432)

* Adding (more) graceful failure when phplist does not have access to random_bytes() from some cryptographically secure pseudorandom number generator (CSPRNG). For more info, please see:

 * https://discuss.phplist.org/t/common-installation-errors-manual-chapter-feedback-and-discussion/217/4
 * https://mantis.phplist.org/view.php?id=18546
 * https://tech.michaelaltfield.net/2018/08/25/fix-phplist-500-error-due-to-random_compat/

* Added a line to throw an exception when the phplist ajax subscribe endpoint fails to add a new subscriber. Throwing this exception causes php to return a 500 Internal Server Error, rather than the existing functionality which just returns a 200 error (merely containing 'FAIL' in the body of the response). Consequently, the ajax client thinks the failure is actually a success, since the http status code is still a 200.

This change makes the response more robust and easier for ajax clients (such as the jquery example linked below) to catch errors from phplist.

 * https://discuss.phplist.org/t/ajax-subscribe-api/974

For more information, please see the following phplist bug report:

 * https://mantis.phplist.org/view.php?id=19524

bramley/phplist3,phpList/phplist3,phpList/phplist3,samtuke/phplist3,bramley/phplist3,samtuke/phplist3,phpList/phplist3,bramley/phplist3,bramley/phplist3,samtuke/phplist3,samtuke/phplist3,phpList/phplist3,phpList/phplist3,samtuke/phplist3,bramley/phplist3