better graph upper limit in diffusion across a permeable membrane

[#53648239]
readme update: ruby 2.0.0, .ruby-version …

plus a minor typo change.
the ubuntu part still needs updating
don't include Shutterbug in gh-pages branch

The gh-pages branch is delivered on a static file-system
so shutterbug/shutterbug.js (which is delivered by the
Rack application Shutterbug) is not available.

Use two SHUTTERBUG related partials to conditionally
include the request for: shutterbug/shutterbug.js

FIXME:
This should also be done when generating the versioned
tar.gz archives … but since they are created from running
code on a server using Rack, Shutterbug can't be easily
removed ...
Bump D3 to v3.2.7

[#53626533]

as this version includes the fix from "fix-transition-callback-order"
branch.
Fix DNA transcription after fixing DNA translation

[#53626533]

... another breaking change in D3. Probably were relying on some
features that were unspecified / not guaranteed.
Fix of the fix for DNA transcription

[#53626533]

Previous fix caused that when transcription was stopped and user
dragged DNA, only small number of nucleotides was visible.
Use transitionInProgress instead of currentTrans != null

[#53626533]
Implement 'showElectricField' option + update tests

[#48204939]
Update "Amout of Charge" interactive

[#48204939]

Add checkbox to toggle electric field on / off.
Implement better way to cancel ongoing D3 transitions

[#53626533]

Based on Mike's idea, please see:
https://github.com/mbostock/d3/issues/1410#issuecomment-21251284
update Crystal Intro 2 interactive
sublime project: ruler at 100 for hard-wrapping

GitHub file viewer seems to show just over 100 chars per line. This sets the ruler at width 100 and sets the default wrap column to 100 (This is the soft-wrap setting, but it is also used by the Sublime Wrap Plus plugin to hard-wrap selected text.)
Guardfile: allow opt-out of LiveReload

`export LAB_USE_LIVE_RELOAD=NO` to make sure LiveReload doesn't unexpectedly clear browser state during a debugging session. Of course this has to be done before the Guardfile runs.
Whitespace
clarify getEmptyPhotonIndex vs. emitPhoton
Fix scrambled photons, ensure 1 object===1 photon

[#48675251]

d3 was getting confused because we were modifying the items in the 'viewPhotons' array such that the a given viewPhoton object might correspond to different photons at different times. This makes sure to allocate a new object for every unique photon.
CloneRestoreWrapper: new padArraysWithZeroes

[#48675251]
eliminate "ghost" photons on tick history restore

[#48675251]

Without this change, restoring from a state which had a smaller photons table fails to clear the vx and vy entries of photons that existed in the prior state, but which are in the newly extended region of the photons table.

The alternative to padding the restored photons arrays is to stop iterations over the photon table when numPhotons non-empty slots are observed, but the approach of clearing the arrays seems much less error prone.
Fix an issue with DNA translation after jumping to its beginning

[#53626533]
Fix / update headless MD2D runner