[BUG] Extra convolutions in TCN
**Describe the bug**
There are extra 1x1 convolutions in the first and the last residual blocks in a case of the fixed number of channels, say input_dim=4, num_filters=4, output_dim=4. There are no need to add such convolutions because the residual summation can be directly performed to the output of the second convolution.

**To Reproduce**
```python
from numpy.random import randn
from darts.models import TCNModel
train_sample = (randn(10, 4), None, randn(10, 4))
model = TCNModel(input_chunk_length=10, output_chunk_length=9, num_layers=2, num_filters=4)
model._create_model(train_sample)
```
<img src='https://user-images.githubusercontent.com/12996098/132572236-13ca3d6b-72f2-4de1-a7af-b07d0284c0b9.png' width=500>


**Expected behavior**
There are no extra convolutions

**System**
 - darts version 0.11.0
diff --git a/darts/models/tcn_model.py b/darts/models/tcn_model.py
index 9dcacaa0..a8c3c5f7 100644
--- a/darts/models/tcn_model.py
+++ b/darts/models/tcn_model.py
@@ -84,7 +84,7 @@ class _ResidualBlock(nn.Module):
         if weight_norm:
             self.conv1, self.conv2 = nn.utils.weight_norm(self.conv1), nn.utils.weight_norm(self.conv2)
 
-        if nr_blocks_below == 0 or nr_blocks_below == num_layers - 1:
+        if input_dim != output_dim:
             self.conv3 = nn.Conv1d(input_dim, output_dim, 1)
 
     def forward(self, x):
@@ -103,7 +103,7 @@ class _ResidualBlock(nn.Module):
         x = self.dropout_fn(x)
 
         # add residual
-        if self.nr_blocks_below in {0, self.num_layers - 1}:
+        if self.conv1.in_channels != self.conv2.out_channels:
             residual = self.conv3(residual)
         x += residual
 
['darts/models/tcn_model.py']