Human readable error if the gyp file isn't a dictionary

Add a human-readable error if a gyp file doesn't evaluate to a 
dictionary. I lost about 30 minutes of my life today because I had 
a spurious comma at the end of my file. This caused the gyp file 
to eval to a tuple. 

This error check is better than passing --check to gyp because 
a) the error output from --check is pretty cryptic, and b) If the 
gyp file had happened to eval to a list or a constant, CheckedEval 
wouldn't catch it. 

BUG= 
Review URL: https://codereview.chromium.org/14195004/
Patch from Greg Humpreys <humper@google.com>!

git-svn-id: http://gyp.googlecode.com/svn/trunk@1608 78cadc50-ecff-11dd-a971-7dbc132099af