Add customization of bootstrap 3 forms

I commonly use the bootstrap 3 form style, but it is not very customizable.  For example, the widths of all elements are fixed, the button colours are fixed, etc.

These changes are intended to address this for the bootstrap 3 style, although it could be extended to other form styles as well.

Everything should be backwards compatible.

I'm not sure if this is ready to me merged yet.  I'm looking to start a discussion (i) does this approach make sense and (ii) how can I add some tests to make sure it is working properly?