[#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
Fixed bug in akvo.rsr.middleware.PartnerSiteRouterMiddleware; partner_site_domain declared too early.
[#157] Upgraded pip requirements: mimeparse -> 0.1.4, tastypie -> 0.9.12.
This fixes the override_urls() warnings in our web server logs.
[#157] Reverted to mimeparse 0.1.3.
Version 0.1.4 doesn't appear to be available in the standard distributions yet.
[#157] Updated tastypie package to latest commit.
This has a further fix for the unnecessary override_urls() web log warnings.
[#161] Use red markers for All organisations map
Merge branch 'develop' of github.com:akvo/akvo-rsr into develop
[#161] Pack the akvo-maps.js file

Run the packer script to update the .js
[#160] Correction to Project.amount_needed_to_fully_fund_via_paypal()

Fix the method that calculates how much a project needs to be fully
funded when donating via PayPal
Changing permissions on git_hooks/pre-commit to 744
[#157] Patched the cacheback package to prevent logger errors in web logs.
Merge branch 'develop' of github.com:akvo/akvo-rsr into develop
[#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