GO terms now linked with probes

Linking GO terms with probes achieved via go_link table and adding
a GO annotation upload page to ManagePlatforms/edit.
Added extra input options in Upload Data page

New field-meta option added: __extra_html__. With this option,
additional input fields can be created in Create/Update forms in
CRUD pages. This commit uses that option to add a collapsible
div under file upload control to allow user to upload both comma-
and tab-separated files, with or without header.
Added File options to Upload GO Annot.

Similar to the UploadData: the input file can have a header and be
separated by either commas or tabs.
Upload of Accession Number annotation now working

Note: only the merck 23k platform currently has multiple accession
numbers for some probes.
Simplified adding plus/minus JS toggles

The +/- toggle links should now are added the following way:
1) Import 'collapsible.js'
2) Assign classname 'pluscol' to a +/- toggle link as well as a
   any random id.
3) Assign an id to the container that is the same as the toggle
   link id except with a '_container' suffix.

collapsible.js scans the 'content' div in the document for all
link elements that have the 'pluscol' classname and assigns the
appropriate behavior to them via setupToggles.
Factored out some UI code

Under most file upload controls, we will be using the standard
'+ File options' toggle button, therefore it makes sense to move
the associate code into SGX::Util. Since multiple files will never
be uploaded at once, it is okay to use standard names such as
'separator' for controls in the toggle section.
Improved UI in upload file forms

Now showing hints as to how the upload file should be layed out
directly under the file control and only when a file has been
selected by the user.
Uploading data to empty platform adds probes

If an experiment is uploaded to a newly created platform that does
not contain any probes, the probes in the experiment will be
automatically added to the platform.
Force popups for all platforms to show '@' studies

Show special 'studies' (@All Experiments, @Unassigned Experiments)
for all platforms. Previously, only platforms containing some
studies would also show these special studies.
Removed some redundant code

In Model/PlatformStudyExperiment.pm, since extra studies specified
by the user (such as @All Experiments and @Unassigned...) are now
added to any platform, there is no need to merge them again when
studies are retrieved.
Uploading probe list on platform creation

Upload probes with sequences is working; still need to implement
(a) upload probes without sequences, (b) updating platform with
sequences.
Uploading probe worked out; Wait indicators...

Semi-final upload probe list code in ManagePlatforms -- still need
to make the sequence column optional and to test whether the update
version (not create) is working fine.

Deleting platforms may take a while, so showing a loading indicator
as a panel with an AJAX request gif image from the YUI library.
UI changes related to wait indicator

No need to display a second message in HTML body after the alert
has been shown to the user.
Probe sequence column now optional in ManagePlatf.

Should be able to either add probe sequences right away or upload
them later, after the platform has been created.
To be merged with latter commit

A lot of the changes here will be undone, so it would be best to
merge this commit with a latter one.
Added probe_comment field to probe table
Settled on upload interface in ManageSpecies

This interface will also be used in ManagePlatforms for uploading
platform annotation. The idea is that the user has a row of buttons
representing columns in a file to choose from. Below the row of
buttons, a banner box displays which columns are to be present in the
uploaded file. The banner box is updated depending on which buttons
are selected.
Factored out checkbox row setup JS code

Still need to enter basic HTML for YUI Button control; however the
rest of the behavior is handled in JS code.
Minor change in upload file interface

Moved paragraph subheading from banner to above the checkbox row.
Factored out some HTML for upload file

file_opts_columns() in SGX::Util now handles the row of YUI check-
boxes. This would probably be better encapsulated in a class that
would also produce required JS code (TODO).