Asset graph

This is far from being done, but I'm opening up a PR for discussion on it... this is turning into a pretty big refactor, making roots a lot more object oriented so that asset-graph can be implemented easier. Also, I'm improving documentation a lot.

~~Oh, also, you might want to direct future PRs to this branch since rebasing this would be really hard due to the number of changes.~~

This is built on top of the transformers branch, which I would like to get merged very soon.

Some important changes:
- getting rid of `ignore_files` & `ignore_folders` (at least internally) in favor of one homogeneous `ignore_patterns` (which is really just temporary anyway, since asset graph will remove any need for it)
- getting rid of globals in favor of organizing with a `Project` class