Store the components rendered for a particular controller and action, and use any components already initialized over initialize them whenever a render_component declaration is hit.

This pull request adds to pieces of functionality:

1. Whenever a component is rendered, some meta-data is stored in a class variable, scoped to the controller and action. This allows the user to initialize components ahead of time. This is useful if you want to do bulk items using information from all of the components like fetching things from the network or the cache.
2. Instead of always initializing a new component, whenever render_component is hit, it firsts looks inside #initialized_components for that component and uses that if it's available.

The main goal here is to give a little bit of help to [LazyResource](https://github.com/ahlatimer/lazy_resource) so it can parallelize more requests, but it isn't explicitly tied to LazyResource, so projects that need to know which components are on a particular action before rendering happens can have support for that.