Is it built into the EOS governance for the community to reach a consensus on the matter of the number of block producers? If the community wants 51 instead of 21 block producers, can they make that happen?
I think this question would be better served in the Governance area of the EOS Go Forum as this site is more for troubleshooting developer issues. (https://forums.eosgo.io/)
In theory, yes if the community wanted that, they would have the means to make that happen. There are currently two governing docs that are to be respected on the chain. The default constitution and the block producer agreement. Both can be found at the governance section of the github (https://github.com/EOSIO/eos/tree/ab30b771efa8d5efda3f6746ebe55a2e59085fdf/governance)