[#121] Add conditional authentication

Add ConditionalApiKeyAuthentication so that authentication can be
required only for certain methods on a resource, e.g. for POST but not
for GET calls.

The methods requiring authentication are set when instantiating the
ConditionalApiKeyAuthentication object, e.g.
authentication = ConditionalApiKeyAuthentication(('POST', 'DELETE')).
If no params are specified authenticaton is required for all methods.
[#121] Override FormValidation to convert URIs to integers for pk fields

Add ModelFormValidation to override FormValidation so that ToOneField
and ToManyField URIs are replaced with just the primary key integer.
Otherwise django's modelform validation will croak!
[#121] Add XSLT used to transform an IATI activity to XML formatted so
it can be consumed by tastypie

Not complete.
[#121] Add IATISerializer

IATISerializer uses xml/iati-xslt.xml to convert an iati-activiy
formatted XML document into XML that can be hydrated by tastypie.
[#121] Add custom_get_or_create_country to rsr/utils.py

custom_get_or_create_country creates a new Country object for a given
iso_code if none exists in the database, or returns an exising object.

This is used in the admin when a user needs to create a new Country and
is also used in the API to create Country objects when POSTing data.
[#121] Add IATIProjectResource, IATIGoalResource and
IATIProjectLocationResource

The resources handle the POSTing of an iati-activity formatted project,
uses xml/iati-xslt.xml to transform it into XML that can be hydrated by
tastypie into a bundle that saves a Project and possibly several Goal
and Location objects.

WIP, there are a number of fields that aren't handled yet and the code
for managing images is only half baked
[#149] Add script that generates python tuples variables from IATI code
lists

Add a script that creates tuples generated from the IATI code lists.
Each tuple is named after the code list but prefixed with IATI_LIST_ and
the words in the code list name are separated by _ and uppercased.

The tuples generated can be used in django model fields for choices
lists. In cases where there are more than two items for each code in the
IATI list additional munging will be needed to create a tuple of
two-tuples that django choices needs.

Add rsr/iati_code_lists.py with a tuple generated from the IATI
Organisation Type code list.
[#149] Add Organisation.new_organisation_type field to use the IATI
Organisation Type code list
Merge branch 'release/2.1.3'
[142] test cases to test donation functionality
[#162] Fix update form in RSR

Add the language field to the project update form in rsr,
templates/rsr/project/update_form.html, that was recently added in the
ProjectUpdate model.

Add help text to the language field in both forms

Add dev domain in partner sites middleware
[#164] Fix middleware for CNAME access of partner sites

Fix runtime error happening when a partner site is requested using a
CNAME domain
Added Mollie tests
Corrected indentation
Updated terrain file with constants required to run donations tests
Update release notes for hotfix/2.1.3.1
Changed log in to PayPal to work with new interface
updated constants
made corrections to feature file
[#142] Moved test config into separate modules out of root terrain.py.
Sensitive config and authentication files have templates that can be edited for local dev.