836 refactor reservations controller

Resolves #836 

Actually, I'm going to go and write tests for this so don't merge until then

<!---
@huboard:{"order":905.0,"milestone_order":882,"custom_state":""}
-->

@orenyk I believe this is the L141 @coollog was referring to. I haven't reviewed the rest of the code so can't comment on its necessity, but wanted to note this lest I forget.