spa: add SpaResult and Error
@ryuukyu : while looking at !33 (merged) I figured it would be good to have some wraper around spa result and errors. What do you think of this? I didn't actually try using it yet so can you please give it a shot in your branch?