Refactor

This adds:
- concept of a "definition" object, which is the internal state of Cedar (see #20)
- constructor can take a definition object, a url to a definition object
`chart = new Cedar({definition:"http://some-url.com/def.json"});`
- specification object or url to spec object
`chart = new Cedar({specification:"http://some-url.com/spec.json"});`
- properties for the dataset and the specification (the definition is the internal state)
- added *some* unit tests for the constructor