Completely revamped scrolling tables

Scrolling tables are now accomplished through JavaScript entirely, with little
work required on the dev's part.  You create a plain table, add the scrolltable
class to it, and call the scrolltable_Generate function.

Everything has been wired back up, and a new CSS file created to handle the
common styling across pages (was getting annoying making changes in the styling
across all pages when I figured something new out).

Hoping to figure out how to get require.js working, so I can break things up
into modules for better organization.
Just fixing up the groups page

Wanted it to render, so now it just shows the four columns that will ultimately
populate the page.  Gotta work on the back end code to make the request and
filter it properly so we know who goes in what column.

It's entirely too late for me to continue banging on this code.  BEDTIME.
Fixed a small bug with sorting columns

Couldn't resist.  Easy fix - just forgot to add the click event assignment to
the constructor for the scrolltables.
Groups page mostly set up
makeSession/EpochRow replaced

No need for independent functions to handle each of those.  Cleaned up the
calling code and replaced both with a generic createTableRow which will be used
on other pages as well.
Groups page improved/updated

Groups can now be switched with the drop down selector, and repopulate as
expected.  Dragging functionality has not been implemented just yet, but it is
next up on the list of to-dos.
Row selection on groups page

Selection/multiselection of rows on groups page works.  Dragging and dropping
not implemented yet, but up next.
Rows draggable/droppable on groups page

Groups page has draggable/droppable rows.  Callback implemented that grabs
dragged usersnames and dropped onto group.

Might need to implement id field on each row so I dno't have to grab text from
the cells themselves when determining the users that were dragged.
Merge branch 'master' into merge_test
Merge branch 'master' into merge_test
First attempt at handling trash

Doing some reorganization on the back end, may alter the manner in which data
is returned from server.

With new trash attribute, things are getting unwieldy doing it in the style
I've gone with thus far.
Return attributes functioning

Using py:attrs Genshi directive, makes for really clean code when wanting to
set ids and classes on elements.
Trash functionality added for epoch, session

Still working out some kinks (need to apply changes I made to experiment to
session, epoch in re: to access stuff and duplication returned entries).

Otherwise, one central function now returns lists of data (list_query).  Gives
back the attrs/data for each row.

Makes for cleaner front end code as well.
Brought python in sync with JS

Returning attrs, fixed up database calls to handle trash.

JS wasn't properly toggling tables - was removing children too soon.  Cleaned
that up.

If you drag and drop a selected row and its epochs are showing, toggles them as
you'd expect.
A lot of trash functionality is wired up

Something is still wonky as fuck with certain things though.  I trashed a bunch
of stuff earlier and for some reason it's all still being returned from the
database despite the filters.  I'm too tired to try to figure this shit out
now.
Fixed weird trash issue

I characteristically couldn't put the problem down, and I managed to figure it
out.  Evidently when I wired up the getTrashFlag JS function, I had set up the
back end python to return json.dumps(trash_flag) - which converts the int to
json.  This is clearly not what the back end code wants to read, so all of my
other functions that depended on it returning a python integer got fixed.  Made
a private and exposed version of the function to handle both cases.  Fixed.
Access page set up, trash functionality in place

Access modification works properly.

Rejects modifications to pis on experiments.

Trash styling improved (no bright blue anymore), and radio buttons work great.  Still need to set up jquery ui stanford CSS on browse page so we can have nicer radio buttons.

Gonna work on the group management page backend next.
Groups page now fully functional

Can drag users around, tables refresh on succesful database changes.

Can't drag onto the source table - ensures logical queries.

Regardless, I attempted to handle weird queries on back end.

Fancy. I'm spent, time to eat breakfast.
Merge branch 'master' into test_merge

Conflicts:
	.gitignore
	nimsgears/controllers/data.py
	nimsutil/__init__.py
Tidying up post-merge