Motion view dev

This branch contains some major changes in the `pydy.viz` module. Which I am listing here. I am opening this Pull request to have a final review before it is merged.  @moorepants @chrisdembia @jcrist @srjoglekar246

P.S: I am working on JS-Testing in a separate branch #74  I plan to get this one merged once that is complete, and merged into `motion-view-dev`.

**New Features:**

 - A new, better UI.
 - Integration with IPython notebooks. For rendering the visualizer inside the IPython notebooks, simply call `scene.display_ipython` from a notebook. (Works only on latest master of IPython).
 - Now rendered objects can be modified from the UI itself(using `edit objects` button in UI), and new JSON will be generated, which can be viewed by clicking `view model` button in UI.
 - Added a new property "material" to the rendered shapes (`Shape` object).
 - Allows rerunning the simulations(after changing the simulation parameters) from the visualizer itself. This feature is partially implemented, but will be fully functional once `System` class comes in.
 - Javascript backend completely modified. Now it is object oriented using Prototype.js.


**Instructions for building this branch with latest IPython, and testing the new features:**

1. Cloning and installing latest IPython:

    $ git clone https://github.com/ipython/ipython ipython-dev
    $ cd ipython-dev
    $ git submodule update
    $ pip install -e ".[notebook]"

2. get this branch from git repo:

    $ cd to pydy-repo
    $ git checkout --track origin/motion-view-dev

3. Add it to PYTHONPATH. 

    $ export PYTHONPATH="/your/pydy/repo/:$PYTHONPATH"

4. Now you can check out the `double_pendulum` example. 
    - cd to examples/double_pendulum
    - comment out the last line in visualize.py, this one: https://github.com/pydy/pydy/blob/motion-view-dev/examples/double_pendulum/visualize.py#L64
    - open `$ ipython notebook`
    - from the notebook call:

    from visualize import *
    scene.display_ipython()

Please feel free to contact me, if there are any difficulties!!

Conda method for testing:

```
$ conda create -n new-pydy-viz numpy scipy matplotlib theano cython sympy
$ source activate new-pydy-viz
(new-pydy-viz)$ conda remove ipython  # conda automatically installs ipython into envs
(new-pydy-viz)$ git clone https://github.com/ipython/ipython
(new-pydy-viz)$ cd ipython
(new-pydy-viz)$ git submodule update
(new-pydy-viz)$ pip install -e ".[notebook]"
(new-pydy-viz)$ cd ..
(new-pydy-viz)$ git clone https://github.com/pydy/pydy
(new-pydy-viz)$ cd pydy 
(new-pydy-viz)$ git checkout --track origin/motion-view-dev
(new-pydy-viz)$ cd examples/double_pendulum
(new-pydy-viz)$ ipython notebook
```
**TODOS(based on suggestions in this conversation)**: 

I have copied original suggestions to maintain the context.

- [x] Update sphinx docs.
- [x] Users should not need to set PYTHONPATH.
- [x] Commit an ipython notebook for the double_pendulum example.
- [x] The model isn't loaded by default, you have to press "Load Simulation". It's nice that the file path is there, but I think it should load the scene when you call "display_ipython".
- [x] There are two boxes for editing the simulation parameters. There should be only one.
- [x] Also this needs to handle 0 to 100-1000 parameters. The simple models on a have a few parameters, but most models have hundreds if not thousands. We probably don't want to display them all to the screen, but maybe let the user scroll through them somehow.
- [ ] The time indicator jumps from 1 to 2 decimal places. Make sure to use a formatter so this always has the same # decimals. Also you should set the decimals based on the min and max time. Some simulations may run at 100000 hz, some may run at 10 hz. We will need a way to speed up and slow down the simulation. It should default to running at real time.
- [x] I liked the time bar indicator. It would be cool to have that and it be drag-able.
- [x] The loop checkbox is missing. I like that feature.
- [x] It is not clear what the "Show Model" button is supposed to do. I though it would make the scene load at first but that didn't happen.
- [ ] I like the object editor, that works nice! how the little menu pops up after selecting the object. The color doesn't seem to change the color. It would be cool if you can rotate and translate the objects relative to their default position here too. I think MG View allows that.
- [x] The rerun simulation button doesn't seem to work.



I think that you should pass in the time array from the Python side. The user may not have wanted to start at t=0, for example.