This commit is intended to makes the license status of Emulab and
ProtoGENI source files more clear. It replaces license symbols like
"EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
blocks that contain actual license statements.
This change was driven by the fact that today, most people acquire and
track Emulab and ProtoGENI sources via git.
Before the Emulab source code was kept in git, the Flux Research Group
at the University of Utah would roll distributions by making tar
files. As part of that process, the Flux Group would replace the
license symbols in the source files with actual license statements.
When the Flux Group moved to git, people outside of the group started
to see the source files with the "unexpanded" symbols. This meant
that people acquired source files without actual license statements in
them. All the relevant files had Utah *copyright* statements in them,
but without the expanded *license* statements, the licensing status of
the source files was unclear.
This commit is intended to clear up that confusion.
Most Utah-copyrighted files in the Emulab source tree are distributed
under the terms of the Affero GNU General Public License, version 3
(AGPLv3).
Most Utah-copyrighted files related to ProtoGENI are distributed under
the terms of the GENI Public License, which is a BSD-like open-source
license.
Some Utah-copyrighted files in the Emulab source tree are distributed
under the terms of the GNU Lesser General Public License, version 2.1
(LGPL).

Fix HTML "character entity" references like &amp missing the trailing semicolon. This is actually a bug in the Cocoon online doc generator, affecting anchors for C++ functions with a reference ampersand in the type signature.

Resizing the window, and moving the splitter between the HyperViewer canvas and
controls panel, now work.
. Resizing of GLCanvas for HyperViewer. EVT_SIZE(self.hypView, self.OnResizeCanvas)
. Control the size of the controls panel.
EVT_SIZE(self.window_1, self.OnResizeWindow)
EVT_SPLITTER_SASH_POS_CHANGED(self.window_1, -1, self.OnSashChanged)
. Keep dragging of the window divider outside the window from blanking the
HyperViewer canvas or controls panel. self.window_1.SetMinimumPaneSize(21)

Minor hypview stuff:
. Cleanup: Don't need to call SwapBuffers in the Python code anymore.
. Since we're walking a tree, we want the Show/Hide buttons to be
on if Descend is checked.
. Go to the top node after read-in, so the node info is displayed.

. Make the AnimationFrames GUI control work on Windows and FreeBSD.
. Make animated moves work in HyperViewer on FreeBSD.
- Add setFrameEndCB to HypView{,er}.{h,cpp}, frameEndCB to hvmain.cpp .
- Pass the wxGLCanvas pointer from the Python app all the way down to
frameEndCB to call wxGLCanvas->SwapBuffers().
The pointer comes through "encrypted" from Python, hack around that.
- hvMain now needs to be compiled and linked against the
wx_gtk2-2.4 includes and libs so it can call SwapBuffers.

. Improve control panel layout by removing spacers and using Border spacing instead.
. Start to make resizing work by setting Expand options in the GUI.
. Change the LabelsMode widget from a wxComboBox to a wxChoice.
. Disallow non-numeric chars and handle Enter in the "Node/Link depth" spinboxes.
. Handle Enter in the Open dialog text fields; complain politely about empty text.
. Disable show/hide buttons when there are no links in or out, respectively.

I will have to fix the bug in PyOpenGL argument passing to get
picking working right.
Meanwhile, I put in a simple work-around hack: when you pick a graph
edge in the spanning tree displayed by HyperViewer, the node it leads
to is picked instead. (The edge has a negative integer ID, while the
node it leads to is positive.)
This also gives the ability to "zip" along edges of the graph, which
I kind of like. It's not a very good substitute for picking nodes,
but might be worth keeping even after node picking works. We can
also define our own semantics for picking edges in the graph...

Minor additions: a hypview wrapper script to set up local shared lib loading; control- or shift-left-mouse for rotate as an alternative to middle-mouse; glob expression to fan-out top-level nodes in getExperiment.