Issue title: Add CONTRIBUTING
 Issue body: I always have trouble thinking what belongs to CONTRIBUTING, so I rarely put them on my projects. If someone has more experience with this file can you please share your experience?

Some things I think would be useful to have in CONTRIBUTING are:

- @nitin42's implementation notes.
- How to lint/format and test the code.
  - How to add your own test cases and how some of our tests work.
    - [TreeTest](https://github.com/hyperapp/hyperapp/blob/687dbd8046eb323acba6d4ad7336507861141f44/test/vdom.test.js#L6)
    - [expectHTMLToBe](https://github.com/hyperapp/hyperapp/blob/687dbd8046eb323acba6d4ad7336507861141f44/test/util.js#L1)
- How to create a new release and how we version hyperapp using semver, milestones, etc. There is currently nothing in place other than common sense and the `release` script in package.json. Maybe @tobiasbueschel can help out with ideas?
- Code style and core values. Explain that hyperapp is deliberately small/modular, etc. We don't want large code changes unless strictly necessary.
- Explain some the current code decisions, e.g., why aren't we using typescript or flow?, why ES6 import/export and not commonjs?, why are we bundling with rollup, etc. Although some of these things that may change in the future, people will wonder.

 Comments: 
 Comment 0: May be this !!?

### [](#before-you-get-started)Before you get started

*   Code of conduct.
*   How and why we built HyperApp.
*   Coding conventions

### [](#contributing)Contributing
*   Ways to help out
*   Creating a pull request
*   Testing


{'source': 'GithubIssues', 'repo_name_with_owner': 'hyperapp/hyperapp', 'issue_id': 239816203, 'repo_stars': 15378.0}