ENH: (mako) number of runs is now set by the json, not hardcoded into template.
ENH: (mako) smartbuttons // start -> end, json tracking just a button text field.
enh: (mako) smartbuttons // name+value fields replaced by text field.
ENH: (mako) smartbuttons // RT Runs explicitly represented in the json.
(1) runs are individual nodes in the json.
(2) Button value syntax: "Start", "End", and "Restart" are reserved actions.
(3) Removed hardcoded #runs and #RTsessions.
(4) RT runs and murfi + serve buttons can be accessed from the top level of the
    json via new lookup consts: "rtLookup", "Murfi", "Serve"
(5) buttonReuse relies on those json lookup consts
EHN: (mako) smartbuttons // Using disabled fields from json. setButtonState() toggles value in json.
ENH: (mako) smartbuttons // more button enable/disable logic! Redo button, skeleton makoDoServe, etc.
ENH: (mako // smartbuttons) removed run redo button.
ENH: (mako//smartbuttons) timestamps added to all runs/tests (except checkboxes). Buttons are now activated
based on what else within the visit has been completed.
ENH/BUG: (mako//smartbuttons)  Visit completion! navtab workaround. redo button issues

0. Visit completion functionality: you have to do the visits in order now!
   Added redo visit buttons. As long as you logout between visits, the
   proper actions enable themselves based on prior visit completion.

1. "Redo visit" buttons begin life as  "complete visit" buttons to force
   an extra form submit. (javascript navtabs don't rerender the
   mako template, arrrgh)

2. Redo buttons reactivate tests, but the logic to reactivate functional
   tests is broken. basically, i'm not sure what to do with the old
   timestamps! i don't want to throw them away... or overwrite them...
   and i'm using the timestamps to compute completion. should rethink.

3. small twitter-bootstrap improvements to the mako templates: increased
   span size of our form so that buttons fit, tightened up the well around
   the form, bolding + linebreaks to improve readability.

4. BUG: please note that CHECKBOXES continue to DO NOTHING.
ENH/BUG: (mako//smartbuttons) Partial work on checkboxes.

This is a glorified stash. I'm halfway through adding checkboxes (as buttons,
secretly), but I got interrupted with having to take screenshots for a report
(which is why the instructions pane is gone). So the code doesn't work very
well, but I this is more important than a stash.
ENH: (mako//smartbuttons) rewrote formHandler, broken makoRedo into makoRedoRun and makoRedoVisit. Things are still broken.
ENH: (mako // smartbuttons) makoCheckboxHandler now adds timestamps, toggles checked state, and disables checked boxes.

-- subreg.html needed a space between the label and the timestamp.
ENH: (mako//smartbuttons) loginbox, bootstrap improvements, run->acquire.

1. checkboxes now use "Acquire" as their action, because "Run" conflicted
   with RT Runs.
2. login box is now in the header navbar, doesn't require visit #.
3. header navbar doesn't collapse anymore, and it didn't work anyway.
4. icons on tabs to indicate completion
5. icons on the loginbox, checkboxes.
6. removed header navbar tabs that we aren't using.
ENH: Created .gitignore for realtime repo!
ENH: (mako/smartbuttons) timestamp history field added to json.

This makes it possible to clear the time field on a button when we
want to redo some actions.
ENH: (mako/smartbuttons) Checkboxes (structural scans) are now ordered.
There are still lots of bugs involving (de-)activating them.
ENH: (mako/smartbuttons) timestamp handling improvements.
-- saved in seconds, independent of string format.
-- timeStamp() method created
fix: (mako/smartbuttons) all buttons start off in the disabled state.
i haven't implemented the logic to initially turn on the relevant buttons
yet.
 ... also, removed some commented stuff that should've been removed in the
last commit, and rearranged some method definitions to group timestamp
methods together.
Updated .gitignore for some _lastrun.py files
ENH: Merge branch 'smartbuttons' into 'master'
Known issues: smartbuttons do not entirely work yet, but they
don't need their own branch anymore.

Conflicts:
	scripts/cherrypy/library.py
 -- Caused by adding some import statements to the top, not an issue.