Add drawer component.

@tgenoni I added a drawer component. It is not done – this is an incremental commit for early feedback. Main goal of this is a prototyping playground for me to try out some designs/behaviors; however, I expect when it's done that this will be a reusable component in the actual Optimizely repo. But any high level feedback on how I'm structuring and doing things so far is welcome. I won't merge until it's actually complete (ish).

I'm also aware that I'm doing my Vue stuff differently from how Jordan and others are doing it in production code, but I will fix that later (maybe).
One of the great things about Vue is if you write a component like this it will still be easy to port to production code, because it shouldn't be tied to the DOM.  I have a few architectural suggestions.

1.  Components should never reference the DOM.  I actually don't like how Vue exposes `this.$el` in the VM.
2.  Components are essentially state machines, and methods in a component should only be manipulating that state (never the DOM)
3.  Representing that state should be declarative in the markup.  That way your components are in no tied to the markup they are currently attached to and can be multi-purposed.

This is how I would go about writing it:
```html
<div class="drawer drawer--docked-right" 
  v-class="in: isCollapsed, 
                drawer--docked-right: isDocked, 
                drawer--docked-bottom: isDocked">

        <div class="drawer__controls">
            <button class="drawer__control" v-on="click: toggleCollapse">X</button>
            <button class="drawer__control" v-on="click: toggleDock">D</button>
        </div>
        <div class="drawer__content">
            <h4>Edit Code</h4>
            <textarea>var vm = new Vue({
            el: '.drawer',
            data: {
                 isCollapsed: true,
                 isDocked: false
            },
            methods: {
                toggleCollapse: function(e) {
                    this.isCollapsed = !this.isCollapsed;
                },
                toggleDock: function(e) {
                    this.isDocked = !this.isDocked;
                }
            }
        });
            </textarea>
        </div>
```

```js
var vm = new Vue({
            el: '.drawer',
            data: {
                 isCollapsed: true,
                 isDocked: false
            },
            methods: {
                toggleCollapse: function(e) {
                    this.isCollapsed = !this.isCollapsed;
                },
                toggleDock: function(e) {
                    this.isDocked = !this.isDocked;
                }
            }
        });
```

This way testing is easy!
```js
describe("drawer component", function() {
  var drawer;

  beforeEach(function() {
    drawer = new Drawer();
  });

  it("should toggle the isCollapsed value when toggleCollapsed() is called", function() {
    expect(drawer.isCollapsed).to.be(true);
    drawer.toggleCollapsed();
    expect(drawer.isCollapsed).to.be(false);
  });
});
```