A simple Promise/A+ spec implementation