Merge pull request #9 from denics/master

added contributor agreement
Remove unwanted SavedSearch columns

Removed saved_search.pos (unused)
Added "columns" to saved_search dataset spec, to only show id and name
Added search spec to SavedSearch listing
Return to the Review buffer on accepting
Removed duplicated code between Items and Listings

Code tidy-up.
Support files as just another metadata field

Download files from /id/file/:id/contents

Support "Upload" input for file metadata types in MetaField::File.

Added support to Storage::Local to store file object contents.

Apache::Storage now delivers File objects, doesn't care about any parent context.

Added "citation" property to MetaField::Subobject to change the citation used for rendering.

(Removed test Image type)
Fix Atom export linking to insecure URLs

edit and edit-media links use https, if available.
Removed unused Workflow::Processor

A predecessor to ScreenProcessor?
Removed unused Workflow::Processor

A predecessor to ScreenProcessor?
Tidy-up EPrints::Page and file delivery

The code for deliverying "pages" (HTML that is templated) was going through
EPrints::Repository, Apache::Template, EPrints::XHTML, EPrints::Page, amongst
others.

This patch rationalises this situation into EPrints::Page and a new
EPrints::Template tree. These two modules are now responsible for
reading/writing pins from disk (static HTML content), generating dynamic pins
and outputting the content through an EPrints XML template.

As part of these changes the general delivery of static content has been
rationalised by the creation of a set of Apache::MapToStorage classes that map
URLs onto files (generating those files if necessary).

Details:

404 errors are now delivered using a Screen::Error::404 plugin

HTTP Expires is now only set on .css, .js and plain files (not templated
content).

Removed Repository::render_error, replacing it with EPrints->abort or
Screen::Error as appropriate.

Removed all page and template processing code from Repository. Use
Repository::template() to access a template object.

Removed support for "page_id" and page-hooks.
Merge pull request #10 from eprints/pagecleanup

Tidy-up EPrints::Page and file delivery
API cleanup of Repository::get_plugins and Plugin

s/^get_// in Plugin

Use $repo->plugins() to retrieve plugin objects. Removed all references to plugins_list().
Added public CSV export plugin

Duplicates Grid & MultilineCSV to some extent.
Added url_param() method to Repository

url_param returns parameters only from the URL (GET request).
Description for Export::CSV
Use better names for EPrints::Page loading

s/new_from_file/new_from_path/

Added "new_from_file" to read pins from a single file.
Merge branch 'pagecleanup'
Added CSRF protection

Added utility module EPrints::Cookie, for setting and parsing cookies for the
correct domain.

Screen::render_form() now sets a CSRF token for POST forms.

Screen::from() now checks that the CSRF form parameter and cookie match before
allowing actions.

Done some tidy-up of render_form() in Screen plugins.
Fixed MapToStorage not creating .css and .js

Fixed bug introduced by b758633103bdf17c5f13d914479117d4279bffd5.
Merge branch 'csrf'