User#folder_feeds now accepts as argument Folder::NO_FOLDER as well as a Folder instance.

If this value is passed to the "folder" argument, the method returns the list of subscribed feeds which are not in any folder. The optional include_read argument is supported as before (it controls whether all feeds are returned, or only feeds with unread entries).

The old behavior (passing a Folder instance makes the method return the list of feeds in the folder) works as before.
Added exists? method to S3Client and FileClient.

This method returns true or false depending on whether a file with the passed filename exists.
WIP: background job to export a user's subscriptions in OPML format.

Currently implemented: the job exports the OPML file and uploads it to the currently configured upload manager (either filesystem or Amazon S3). An email notification of success or error is sent.

Not yet implemented: Compress the OPML file with zip. Attach the OPML file to the success notification email. Create a job state table and associated code so that the user can be notified of the state of the export job, like what is already done with other job classes.
The "export successful" email notification has the OPML file attached.
WIP: "export subscriptions" button in the edit profile view.

Currently the button links to the profile destroy path, a controller method and route for exporting do not exist yet.
When user clicks on the "export subscriptions" button in the edit registration view, a job is enqueued to export his subscriptions in OPML format and he's redirected to the read view.

Implemented: the job exports the OPML, uploads it to the currently configured uploads manager (Amazon S3 in production) and sends a notification email to the user with the OPML attached.

Not yet implemented:

- no alert is displayed in the start page to show the state of the export job
- no link to download the OPML is displayed in the start page or the edit registration view.
Renamed DataImport model to OpmlImportJobState.

This is more homogeneous with other job state models (RefreshFeedJobState, SubscribeJobState)
Most of the code for parsing an OPML file and enqueuing jobs to subscribe the user to the feeds there has been moved to the new OpmlImporter.import method.
Renamed OpmlImporter class to OPMLImporter class.
Fix tests.
Fix tests.
Fixed tests.
Minor rename of a method argument.
Minor comment change.
Renaming of some html attributes.

More in line with the new "opml-import" nomenclature, instead of "data-import".
Renaming of several entities according to the new "opml-import" nomenclature, instead of "data-import".
More renaming "data-import" -> "opml-import".
Reorganized alert view fragments.

The alerts fragment was getting too big and unwieldly. Now it's been divided into smaller fragments grouped by associated functionality.
Renamed data-export to opml-export everywhere.
Fixed path helper in partial view.