Rewriting the way modifiers work

Hello sho, eford, 

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

2b97d2f2b5ce5850bbcc94340cba0611a5300155 (2013-01-23 11:46:17 -0800)
All tests besides silent deps pass

2306f4094a354cfd044d647fb69f313e4cf42d1d (2013-01-23 11:27:25 -0800)
Finished initial testing on modifiers

de4b34572d9276e9539d6036b232024977da5e01 (2013-01-23 09:18:58 -0800)
Moved Builder._addModifier to use shared getNodeInfoFromModifier function

c0a67ac4c0c566d054dc04b370cc702dffe4d3fb (2013-01-23 09:18:11 -0800)
Moved Graph._addModifier to use shared getNodeInfoFromModifier method

bbb3f7d996b48b74fa677674300a537e980dfc2c (2013-01-23 09:15:48 -0800)
New modifier tests work with subgraphs

3ffc29fcfa06f6525e0e222476c6f323fa24f0ac (2013-01-23 09:09:34 -0800)
Allowing pass through of arguments to self modifiers

16fb5cdddee31015663bd1f259423633168aaed5 (2013-01-23 09:00:07 -0800)
Updated builder modifier to test using pass through

cf43745da1bfff06cec99773962faa38f1627acc (2013-01-22 19:04:14 -0800)
Second of modifier use cases works

3a8bc520efdb6120b204bc6d616a781b249320ce (2013-01-22 18:19:37 -0800)
First of 3 modifier options working

R=sho
R=eford