Squashes the changes from #17921 and makes some additional changes:
- Updates the docs to include disabled example
- Clarifies some component behavior in the docs
- Rewrites the styles to use less nesting and more specific class names
- Overhaul the custom file input with nesting and more specific classes
- Change custom select menu's class to
.custom-select
- Fix the rounding on the custom select menus
/cc @markau