Can I change which contact fields are required or visible, or add my own fields?
Yes. There are many built-in contact fields plus custom fields, and every field has settings. For each field you can make it required or read only, confirm where it is displayed, make it searchable, and choose whether it is visible. You can also add your own custom fields, as many as you want.
The Company field on the add contact form is a built-in field and is not required.