Extract Parser#will_capture?

and make it public
Tests for Evaluator#will_capture?
Add a NodeProcesor

It's the best of both worlds. It will discard all the nodes it does not actually need
Dispence with the NodeExtractor
Discard subexpressions right when they have been returned

Instead of storing a list of all the expressions and then modifying them in-place,
process them once they have been returned from the parser and before putting
them on the expression list. This way we can get rid of all the nodes we don't need.

This also allows us to return nil and skip saving the expression entirelly
Add a nil handling test
Raise the proper exception if no block is given
Add envar for profiling
Don't need Forwardable anymore
Extract profiling into a separate Rake task
Add Rake to deps
Bundler is already there