Coded Computing Systems Decoded: Dealing with Unreliability and Elasticity in Modern Computing