add unittest for core_collapse

related to #41

I read this issue and thought I could take a stab (we had already several tests ported for polymer-elements).

First I tried the test for `<core-ajax-dart>` but I wasn't able to get anything but `<debug target crashed>`.
I checked in this test to my cloned repo.
 
The test for `<core-collapse>` works fine so far.

If this is what you want, I can add/port the other tests too.
This is an interesting attempt and is exactly the why contributing to OS projects can make one a better programmer :-).

I implemented it this way already but I'm not sure if it's really the best way for this case:

- I have two variables (c, h) which are introduced and then used inside subsequent futures. I have to move the declaration outside `Polymer.onReady` to be able to access these variables wherever needed

- When the JS test changes it is more difficult migrate updates to the Dart port because the code is structured differently. 

I added the code below.

Do you still think I should do it this way?

```
final delay = new Duration(milliseconds: 200);

void main() {
  useHtmlConfiguration();

  test("core-collapse", () {
    dom.querySelector("button").onClick.listen((e) =>
        (dom.document.querySelector("#collapse") as CoreCollapse).toggle());

    return initPolymer().run(() {
      CoreCollapse c;
      String h;
      return Polymer.onReady
          .then(_nextMicrotask)
          .then((_) {
            c = dom.document.querySelector("#collapse");
            // verify take attribute for opened is correct
            expect(c.opened, isTrue);
          })
          .then(_delay)
          .then((_) {
            // get the height for the opened state
            h = getCollapseComputedStyle().height;
            // verify the height is not 0px
            expect(h, isNot(equals("0px")));
            // close it
            c.opened = false;
          })
          .then(_delay)
          .then((_) {
              // verify is closed
              expect(getCollapseComputedStyle().height, isNot(equals(h)));
              // open it
              c.opened = true;
          })
          .then(_delay)
          .then((_) {
                // verify is opened
                expect(getCollapseComputedStyle().height, equals(h));
          });
    });
  });
}

dynamic getCollapseComputedStyle() {
  dom.HtmlElement b = dom.document.querySelector("#collapse");
  return b.getComputedStyle();
}

async.Future _nextMicrotask(_) => new async.Future(() {});

async.Future _delay(_) => new async.Future.delayed(delay, () {});
```