Fleshing out entrypoint for evaluation context creation
Added stubs for freeing evaluation contexts
Rename evaluation context freeing API method to make it clearer that multiple contexts are being freed
Move evaluation context type enum to external-facing depsgraph header
Changed Components to store a stack of different contexts they can use

XXX: This code may still need to be modified before it will compile
Code reshuffling - Move context management decls before evaluation entrypoint funcs
Evaluation entrypoints now need to know what contexts they are to be evaluating

This is necessary to ensure that just the right set of values end up
getting evlauated
OpNode evaluation function now needs to know about what the evaluation context is