Adding optimization for disableNodeCache() + better conditional checking

Hello jfuchs, 

Please review the following commits I made in branch 'jeremy-perf'.

64f9659865722d382134fd1a481552e149ea3325 (2013-03-07 10:45:21 -0800)
Adding conditional logic to check for existing fields

cce2449a9de80c65de08212932a70f6ff7092bad (2013-03-07 10:26:19 -0800)
Adding optimization so that nodes which implicitly depend on silent nodes don't have their cache disabled inadvertently

R=jfuchs