text: Title: [BUG] TimeSeries.append and prepend with empty array produces an unhelpful error message
  Body: **Describe the bug**
  
  `TimeSeries.prepend_values` produces a less-than-clear error message when called from a TimeSeries with a datetime axis and passed an empty array
  
  **To Reproduce**
  Steps to reproduce the behavior, preferably code snippet.
  ```
  ts = darts.TimeSeries.from_times_and_values(pd.date_range(start='2021-01-01', periods=9, freq='W-SUN'),
     np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]))
  
  ts.append_values(np.array([]))  # Long stacktrace, including IndexError: index 0 is out of bounds for axis 0 with size 0
  ts.prepend_values(np.array([]))  # Long stacktrace, including IndexError: index -1 is out of bounds for axis 0 with size 0
  
  # Works with an integer axis
  ts = darts.TimeSeries.from_values(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  ts.prepend_values(np.array([]))  # Returns unchanged `ts`
  
  ```
  **Expected behavior**
  Either a clear error message that confirms the unsuitability of the array for pre/appending, or for the unchanged timeseries to be returned. 
  
  **System (please complete the following information):**
   - Python 3.11
   - darts 0.30.0
  
  **Additional context**
  The error raised if the array has an unsuitable shape is clearer, but could also be improved if the array dims were checked for suitability, rather than letting `append` raise an error for mismatched numbers of components.
  ```
  ts = darts.TimeSeries.from_values(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]).reshape(3, 3))
  ts.append_values(np.array([10, 11, 12]))  # "ValueError: Both series must have the same number of components."
  ```