Handle and apply returned Array objects from source property

Add tests
Fix #49: Ungrouped grid doesn't work in chrome

Ungrouped grid doesn't work in chrome due to a flexbox bug:
  - issue 345433: Incorrect sizing for nested flexboxes
  - https://code.google.com/p/chromium/issues/detail?id=345433

With nested flexboxes, the inner flexbox's width is proportional to the
number of elements instead of the number of columns.

To work around this, we disable structural nodes for environments that
would repro this bug. Disabling structural nodes prevents us from having
nested flexboxes.
Merge pull request #80 from pke/addClassOneTime_can_add_arrays

Allow addClassOneTime to handle Array values returned from source property.
Move everything that contributes to base.js into TypeScript.

The trick to get a reference to undefined is not needed in ES5-compatible browsers as undefined is non-writable.
Moving base folder to TypeScript modules.
Moving wwa-app files to modules.

Also, remove use of WinJS.Class in events.ts.
Migrate Promises to TypeScript.
Cleanup bad merge.
Un-expose private members from Promise.
Move Scheduler to TypeScript.