Update documentation for all components

Following !1 (merged), let's make some really nice and easy to follow docs for the components to help developers understand how to work with them.