Refactor main drawing function

We add a redraw function which redraws. This will be needed for zooming, maybe
later I can do some prefilter, if needed, to remove extra elements. In addition,
we refactor what is done to draw elements. For example, we do not need to add
the data like sequence and nts to nucleotides, interactions and such. We should do
filtering not using css selectors, but instead using data attributes. This
change forces that. We change the standardBuild function to make it simpiler to
build things because of these changes.
Fixes #3

We now have a basic zoom working. This allows us to focus in on one region to
see it clearly. I still should add more features like labels that only appear
on high zoom, or letters in circular that appear at high zoom and the like. But
this is a good enough start.
Generate accessor function conditionally

We don't always need an accessor function for the components. This adds some
logic to check if we should and only generates it when required.
Add a basic chain component.

Seems that the best way to support chains is to have a component for the
chains. This commit outlines the basic config for a chain. I may or may not add
interactivity to chains. Not sure if it is a good idea.
Reorganize the data folder

I'm going to start testing on multiple structures. It will be easier to do this
if I can choose structures and have all the data for them organized nicely.
This sets up that type of organization.
Add chosen plugin

I'm going to switch between structures so to do this I'm adding the chosen
plugin to make the selecting look nice. This adds and activates the plugin.
Update the select box
Add 3F4G

I'm using this structure because it has more than one chain. It will be a good
test case for circular diagrams with several chains.
Remove unneeded data file
Update select box to current structures

The select box now has the current structures.
Update jquery plugin

We will now use chains to store data, not nucleotides. This updates the jquery
plugin to change the names as needed.
Update chains

Update the config functions for accessing chain data.
Make sure interactions is a data store.

We do store interaction information in interactions so we now have to mark it
as a datastore. This adds that variable.
Mark motifs as a data store
Remove compute ordering

We don't always need the computed ordering so we shouldn't always compute it.
This removes that call from the main drawing function.
Alter resetting the zoom translation

We should make sure that the total translation is zero when totally zoomed out.
This forces that.
Add a todo note

I've had an idea that using a more complicated way to force the view into the
correct position would be useful. This todo note just puts that into code so I
don't forget.
Update loading to new setup

We now load chains not nucleotides and I've reorganized the data. This updates
the loading code to reflect that.
Add chosen sprites
Make non-datastores an object

We have to make the non-datastore components an object otherwise there is
nothing to assign the config values and the like to.