Refactored "DynamoModel.Reset" and "ResetEngine" methods

Background
-----
This pull request is meant to refactor code around ```DynamoModel.Reset``` and ```DynamoModel.ResetEngine``` methods, folding them into a single method that can easily be further updated. This modification is done on the existing code so that it takes a good chunk of changes out of [work done on Concurrent branch](https://github.com/Benglin/Dynamo/compare/Concurrent), and it can be reviewed separately.

Changes
-----

1. Fold logic of ```Reset``` into ```ResetEngine``` method, including ```RequiresRecalc``` part.
2. Add ```bool markNodesAsDirty``` parameter to ```ResetEngine``` to optionally perform ```RequiresRecalc```.
3. Update all existing callers of ```Reset``` to call ```ResetEngine(true)```.
4. Add ```DynamoModel.ResetEngineInternal``` to perform the actual engine reset.
5. ```DynamoModel.ResetEngine``` method calls ```ResetEngineInternal``` directly.
6. ```RevitDynamoModel.ResetEngine``` method calls ```ResetEngineInternal``` through ```IdlePromise```.

Testing Scenarios
-----
**Standalone Dynamo**
- Tested on Revit 2014, ```ResetEngineInternal``` is only ever called on ```IdlePromise```.
- Reverted Jun's fix to reproduce issues with ```Waterslide``` graph, and ```Force Re-execute``` successfully recovered from the issues.

**Dynamo on Revit 2014/2015**
- Tested the following scenario on both ```Revit 2014``` and ```2015```, in both cases ```Force Re-execute``` menu works as expected (after the reference points gone out-of-sync):

  ![left-over-reference-points](https://cloud.githubusercontent.com/assets/5086849/4186856/832d3dc2-3764-11e4-9c42-8d1795ed18c0.png)

Notes to Reviewers
-----
Hi @lukechurch, since you were the author of the original code, I'm making you a reviewer. Please help to see if the comments on ```DynamoModel.ResetEngine``` make sense. Thanks a lot!

Hi @ikeough, I'll merge this into ```Revit 2015``` once it's accepted for ```master```. If you could have a look at this PR I'd really appreciate it too :)