Factor out role switcharoo to instance method

Since there's a mutual foreign key requirement of roles to instance, in order to create the relationship properly the following must happen:
1) A dummy role with no instance must exist.
2) The instance must be saved with the dummy role.
3) The dummy role must be replaced by a regular role with instance set.

This now happens closer to the model layer.
Add support for non-logged in user CSV exports

fixes #1384 on github
Connect nearby instance view fn to a url

This view was created, but never exposed on a url. It is now required
by the cloud mobile apps.
Merge pull request #1395 from steventlamb/bug/1384_fix_unauthenticated_map_exports

Bug/1384 fix unauthenticated map exports
Fix map feature sidebar

fixes #1397 on github.

html wasn't being sent from accordion endpoint to accordion dom element.

the accordion section was being told to collapse or show based on plot or resource, which is not correct. Fix it to go by whether there is accordion html.
Merge pull request #1398 from steventlamb/bug/1397_map_feature_sidebar

Fix map feature sidebar
Fix null reference

addresses #1291 on github
Merge pull request #1399 from steventlamb/bug/fix_isplot_null_error

Fix null reference
Merge pull request #1396 from jwalgran/topic/connect-nearby-instance-api

Connect nearby instance view fn to a url
Don't show edits on the edits page if the user doesn't have permissions

Fixes #169
Remove @csrf_exempt from route helper.

After some testing API access does not work without it.
So, I've moved the csrf_exempt decorator to only apply to API views.

Fixes #249
Hide soft keyboard on enter key.  Fixes #155
Fix incorrect filtering link on /edits

Fixes #873
Show map feature photos on the edits and user edits pages