Easily manage multiple and nested $q promises