Save correct public state when toggling checkbox in project settings

The order of events for ng-click and the bound scope being updated
is ambiguous. This was causing the backend to be updated before the
scope had actually changed. Using ng-change instead of ng-click
ensures that the updated scope information is being sent to the backend.

Fixes #411