Some time optimizations of the PSUL code. 

### Fetch processes per artifacts outside loop

The line:

    processes = lims.get_processes(inputartifactlimsid = inart)

in the method `add_out_art_process_conection_list` will be called a lot of times, and since all processes that involves a certain project can be fetched with a single api call, I decided to move this outside of all the looping.

### Use name_to_id statusdb view instead of id_to_name

The view in Couch DB was incorrectly constructed, so that the PSUL code looped through all rows of the view each time it needed to find a single element. I reversed the view, making it possible to query a single key.

### Compatibility

I did a brute merge of the upstream master, but I have not checked the code and its functionality since then. 
Well no, I am not sure at all. I plan to check that out today, but for what I can tell, the couchdb view does only emit {doc.name:doc._id}.
So : 
Old code ->
for doc in view -> doc is a tuple, key value

New code ->
for doc in view[sample_run] -> doc is a single value (doc._id), I believe. So calling .key should do something weird.

I might be wrong though, because I suck at python. maybe 
 >for doc in view[sample_run]:
actually returns a tuple.  I think that String.value actually exists, so that might be even more confusing. gotta test that.