Fine grain control of specifying ttl

Existing behavior is preserved (which is referenced in .
Using an enum for now - please suggest modification if inappropriate.

This is a hack to work around the problem I discussed with @matei : namely, enable cleaner to evict shuffle/etc blocks, while ensuring that there is no side effect in other parts of spark (like eviction of broadcast variables, etc).