Resolve __random button selections only after all buttons have been selected

Fixes #1157.

Requires database update 01157_random_button.sql

http://jenkins.buttonweavers.com:8080/job/buttonmen-blackshadowshade/377/
I don't veto this, but it's unnecessarily complex and error_prone.  It seems like the issue is that in the backend, we're designating random buttons by empty name and some sort of is_random flag, whereas in the API and frontend, we're designating random buttons with the "__random" string.  I suggest opening a new ticket to refactor to having the API use an is_random flag as well.  That way, selects can just select the name and the is_random column and ship those things off to the API without lots of modification.