Implement structural function and array types

Just wanted to add two constructors to a datatype, how ugly can it get?

R=bmeurer@chromium.org, jarin@chromium.org
BUG=

Committed: https://code.google.com/p/v8/source/detail?r=20809

Committed: https://code.google.com/p/v8/source/detail?r=20815

Committed: https://code.google.com/p/v8/source/detail?r=20818

Review URL: https://codereview.chromium.org/228263005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@20819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge remote-tracking branch 'upstream/master'