Editable IDs for programmes, projects and properties.

Issues discovered during adding editable IDs (not related to the change itself):

When entity is malformed during POST or PUT, handle-malformed in liberator throws an exception when returning a map. I remember fixing it a couple of months ago but it looks like the fix was lost. More information about exception and workaround (there is no fix for this issue yet) here:
https://github.com/clojure-liberator/liberator/issues/94

I've basically added
``` 
:representation {:media-type "application/json"}  
```
to all maps returned in malformed? It then returns 400.

However, when I edit property (via UI) that has lots of property_data, it fails schema validation. I only edit one character in an address and the error it returns is:
```
{"errors":["not",["some",["check","%","a-clojure.lang.PersistentArrayMap"],"schemas"]],"malformed-msg":"Uploaded data validation failed"}
```
It's not very helpful. I'm not uploading data, just editing a web form, a single character to specific.