Changed inheritance schemes, Data->Trace, no more mako, added metaclass.

Changes
=======

Inheritance schemes:
--------------------
* All dictionaries containing data now subclass from Trace. Data means
something completely different now. For example:
```
class Scatter(Trace):
...
```

* Data now refers to a PlotlyList, which makes more sense.

No more mako:
-------------
* using templating from mako was starting to be more trouble than it was
worth. We were forced to develop in a *hidden* file, installing required
extra steps, and the documentation was scattered.

Added metaclass:
----------------
* meta classes are classes that create classes. Python's usual meta
class is `type`, this creates all classes. By subclassing type, you can
make python < 3.3 docstrings mutable, hooray!

* so far, only DictMeta, a class to create PlotlyDict subclasses has
been created.

* IMPORTANT. A lot of headache was saved by *cheating* a bit and using
class names as keys in the INFO dictionary. Therefore, ALL CLASSES
SHOULD HAVE A MATCHING (lower case) ENTRY IN `INFO`!!!
Added plotly/exceptions.py and plotly/utils.py

plotly/exceptions.py
--------------------

This contains all of the custom exceptions we want to use in the plotly
package. A base `PlotlyError` subclasses from `Exception` and all other
errors subclass from `PlotlyError`.

plotly/utils.py
---------------

This is a blank file, intended to be populated with functionality from
plotly.py.
Commit for initial *working* version of graph_objs.

Lots of questions are pretty open-ended at this point. However, this is
a fairly detailed first-crack at giving users a python *interface*
without ruining the declarative nature of plotly.
Added a testing framework. Intended for use with `Nose`.

All tests in the `test` directory are for the new graph_objs.

Haven't used Nose?
------------------

```bash
pip install nose
nosetests -w tests -v
```

Where -v is the verbose option. I use the *new-ish* `@raises` wrapper
for exception testing, you may have to upgrade if you haven't paid much
attention to your nose.

```bash
pip install --upgrade nose
```
Restructured graph_objs_meta.INFO dict. Removed methods from graph_objs.

Restructure:
------------

This is the current structure in INFO:

```
    bar=dict(
        type=dict(required=True, type='plot_info',
                  val_types="default: type='bar'",
                  description="Plotly identifier for trace type, this is set "
                              "automatcally with a call to Bar(...)."),
    ),
```

Removed methods:
----------------

The following were removed from both PlotlyList and PlotlyDict:

* `get_json()`, no longer needed, automatically handled.

* `clean()`, used to remove None entries, no longer needed.

Other changes:
--------------

* `Trace` --> `PlotlyTrace`

* Changed `MetaDict` to reflect new graph_objs_meta structure

* Changed the way we check for `'valid'` keys to reflect new structure

* Changed the way we check for `'safe'` keys to reflect new structure

* `TYPE_TO_CLASS` --> `STRING_TO_CLASS`
Merge pull request #13 from theengineear/graph_objs

Graph objs