First stab at grid for list of files #4959

Grid is a view mode for each of these types.  I'm still not sold yet on it being decided by a separate dropdown.  For now I wanted to make the grid itself work and then we could go back and fix the form's UI.
LOP grid WIP #4959

Ditched one approach from LOF grid.  It's apparent that we'll be using grid thumb/teaser/full/title/etc.  Combining the selects no longer makes sense.  Dropped that.  Now am trying to have a layout select for choosing grid or list.

I would like to avoid making new view modes and then sorting them based on whether or not 'grid' appears in the title.  That seems too verbose.  It basically doubles the number of view modes and the length of os_files_file_view().  Using the view modes we have and changing them when grid is selected seems a bit more sane.  But that function will get ugly fast if each of the file type's view modes also has a case for list and grid.  Sooo....

Instead the current approach is going to be to let the LOF get build arrays for each file as usual.  In grid mode, alter them.  This means:
1. Change full video to use a thumbnail
2. Give title modes a thumbnail (or introduce a thumbnail mode)
3. Give images a different style.  The os_files_* ones resize width, but keep height proportional.  Grid needs heights to be consistent, unless we're going to do the pinterest thing.
Grid of images has teaser, title, thumbnail views.  #4959

Also fixed thumbnail on list view.  May need css work though.

@dancabral
Updated LOF javascript for layout switches #4959

Switching grid -> list and vice versa updates the display style to only use valid styles.  I updated os_sv_list::entity_view_modes() to be aware of the layout.

The layout select is only visible for images and videos.  However, selecting one of these and then going back to content type would give you content type = audio, layout = grid.  So when that happens I added an event to reset layout to list.

For simplicity's sake, layout changes just trigger the content type change function we already had.
LOP grid form #4959

Now that we know which files have a grid display, we can programatically determine teh form #state for displaying layout.
List of vids title, teaser, thumb work in grid mode #4959
LOF as gird. Cleanup css for image grid view--grid with teaser display inline and aligned left, removed unneeded css. #4959
Moved layout_grid to its own func.  Removed dev code #4959
LoF grid has setting for 2-5 cols.  Added image style.  #4959
Hid grid layotu from node.  File only for now.  #4959
LOF markup #4959

Updated lof markup to @dancabral's specifications.

Have to fix video in teaser mode.  It lost its sizing at some point, but I was hoping to size up the vids anyway.
Fixed lop video grid size #4959
fix position of video play arrow indicator. #4959
more css tweaks to LOF widget. #4959
Fixed full display of LOF image #4959

Not sure what happened, but the file became a link, rather than an image.
Add vsite_og_permission().
Adapt activate_user_roles().
vsite_get_os_permissions().
More fixes.
docs