Introducing a CONTRIBUTING guide

> be aware that we adhere to semantic versioning

This could be point 3 in the list above, replacing the line I suggested removing. The key information to provide for this sub-section specifically is users should be able to:

1. Demonstrate a case where a negative performance impact (runtime efficiency or developer productivity) can be observed.
2. Keep the scope as narrow as possible. Changes which affect a large number of places in code should only be used for problems which are either severe enough that a feature is unusable, or affect a large number of users. Changes which are easily understood and will not negatively impact any users are more likely to be integrated quickly.