Implement a spiral matrix algorithm.
Given a rectangular 2D integer list, return its elements in clockwise spiral order. Return an empty list for an empty matrix. The input matrix is provided as matrix, and the output must be a one-dimensional list containing every element exactly once.
def spiral_order(matrix):