[#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
Add requests to pip requirements
A little code cleanup
[#121] Extend IATIProjectResource

Add IATIPartnershipResource and IATIBudgetItemResource

Use the above classes in IATIProjectResource

Some code cleanup
[#121] Additions and changes to the XSLT

Change the description tag to use akvo:type selector

Add templates for budget and participating-org

Change how activity-date is handled
[#121] Add importing script for Cordaid XML

Add api/cordaid_importer.py. It is not fully functional at this point.
Merge branch 'develop' into feature/cordaid_iati

Conflicts:
	akvo/api/resources.py
	akvo/rsr/admin.py
	akvo/rsr/models.py
	akvo/templates/admin/rsr/organisation/change_form.html
	akvo/templates/admin/rsr/project/change_form.html
	scripts/deployment/pip/requirements/2_rsr.txt
[#121] Removed Cacheback for now

There are problems when items don't get cached, possibly linked to
encoding stuff

Also updated the ConditionalFullResource.get_list() and
ConditionalFullResource.get_item() to work with the latest Tastpie
Merge branch 'hotfix/v2.1.3.1'
Merge branch 'hotfix/2.1.3.1'
[#121] Add unique constraint to Organisation.iati_org_id

Add migration for the constraint

Bugfix in BudgetItem.get_label()
[#121] Additions to the XSLT for Partnership and indirectly Organisation

Added a number of tags, most of them helpers to be able to generate
Organisations if they are missing
[#121] Add IATIPartnershipResource.hydrate_organisation()

hydrate_organisation() tries to create the foreign key to the partner
organisation by first trying to find an exising org and failing that it
tries to create a new Organisation and link to that.

This way the import auto-generates new Organisations from the XML data,
provided that it is consitent and that all participating-orgs have at
least a name, either an IATI ID or an interal-ref ID from the
reporting-org and a type.

I'm not sure if this is the right way going forward to import
Organisations, but since there is currently so little information for
them it works for now.