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/
In defense of going to that extra effort, i will point out that as soon as we're letting people make random selections from anything less than the set of all buttons, we'll need extra dimensions in this API-communicated data anyway.  So i think it'd be *very* worthwhile to have the API and the backend speaking the same language, because the language is just going to keep getting more complicated.