Prototype System class.

@moorepants, can add your tests to this branch? From this point I'll write code in a test-driven way. It'd be fun to continue to work on this together, but I'm also happy to do the coding and you can review afterwards (if you're busy, etc.).

- [ ] Edit Scene so that it takes in a System. @tarzzz ?
- [ ] Make KanesMethod and LagrangesMethod derive from a single abstract base class (ABC), perhaps MechanicsMethod. This ABC will be required to provide certain attributes. EDIT: Let's not do this now? [Jason: I'd wait on this too, it isn't necessary]
- [ ] Clean up documentation of System. I'm not sure what to put in the class docstring vs the constructor docstring vs the property docstrings. I am duplicating some information right now. @moorepants @tarzzz @jcrist ?
- [x] Write tests for constants, initial_conditions, ode_solver
- [ ] Finish tests for complex settings of the `specifieds`. @moorepants ?
- [ ] Rewrite specifieds to work with @moorepants ' existing code. @chrisdembia, @moorepants ?
- [ ] Finish testing of `generate_ode_function`, `integrate`. @moorepants?
- [ ] Ensure that this class is useful for @jcrist . @jcrist ?
- [x] Finish setters for constants, specifieds, initial_conditions, ode_solver @chrisdembia
- [ ] Test using the `constants`, `specifieds` and `initial-conditions` properties as dicts
- [ ] Rewrite so that generate_ode_function takes a system. This may take a lot of work, since right now System is what calls generate_ode_function.
Is there any way, that we can use System to eliminate the ReferenceFrame and Point argument supplied here.
Maybe they can be saved in System class too?

so that all we need to do is:

    scene = Scene(sys, vframes_as_a_list_or_tuple)