Kelvin's circulation theorem derivation: why is $D(d\vec {s})/Dt = d\vec{V}$? I am trying to understand the derivation of the Kelvin's circulation theorem, namely:
$$\frac{D\Gamma}{Dt} = 0$$

The solution that I've read is:
$$\frac{D\Gamma}{Dt} = \frac{D}{Dt}\left (\oint_{C} \vec {V} .d \vec{s}\right )= \oint_{C}\frac{D\vec{V}}{Dt}.d\vec s + \oint_{C}\vec V.\frac{D(d\vec{s})}{Dt}$$
Consider the second term in the above equation and note that:
$$\frac {D(d\vec{s})}{Dt} = d\vec V (*)$$
This is the point I don't get it, here is how I thought if we accept the equation (*):
$$\frac {D(d\vec{s})}{Dt} = \frac {d \vec s_2 - d \vec s_1}{t_2 - t_1} = \frac{d \vec s_2}{t_2 - t_1} - \frac{d \vec s_1}{t_2 - t_1} = \vec V_2 - \vec V_1 = d \vec V$$
However, I thought we only could do this if the contour C is a streamline, that is, $d \vec s$ is the same direction with $\vec V$. But it's not true because Kelvin's theorem hold for any arbitrary closed curve, you can see $d \vec s$ and $\vec V$ in the figure above . I have read this question but still don't get it:
Derivation of Kelvin's circulation theorem
 A: The cleanest demonstration, imho, is obtained by using the flow map but there is a way to make your kind of demonstration rigorous. So I will do both, in that order. But as you pointed out in the comment, you would prefer a more lightweight approach, so I will start with that!
Intuitive lightweight answer
Let's say the elementary segment $d\vec{s}$ has extremities $\vec{x}$ and $\vec{x}+d\vec{s}$ at time $t$. Then at time $t+dt$, those extremities would have respectively moved to $\vec{x}+\vec{V}(\vec{x},t)dt$ and $\vec{x}+d\vec{s}+\vec{V}(\vec{x}+d\vec{s},t)dt.$ Thus at time $t+dt$, the difference between the two extremities has become
$$d\vec{s}'=d\vec{s} + \big(\underbrace{\vec{V}(\vec{x}+d\vec{s},t) - \vec{V}(\vec{x},t)}_{\displaystyle d\vec{V}}\big)dt.$$
where $d\vec{V}$ is therefore the change of fluid velocity across $d\vec{s}$. Thus the rate of change of the elementary segment is
$$\frac{Dd\vec{s}}{Dt}=d\vec{V}.$$
Capital D's because we are looking at a change following the flow.
This is basically a more pedagogical version of this existing answer.
Demonstration with the flow map
Introduction: Lagrange point of view and the flow map
A common approach, named after the physicist Lagrange, is to consider an infinitesimal volume of fluid, called a fluid particle, and to follow its mouvement. Let us consider a fluid particle at position $\vec{x}$ at time $t=0$. At a later time $t$, it is at position $\vec{\xi}$. Obviously $\vec{\xi}$ depends on $t$, and we can even write its motion $d\vec{\xi}$ from time $t$ to $t+dt$: it is equal to $dt$ times the velocity of the particle which, by definition of the velocity field, is $\vec{v}(\vec{\xi},t)$:
$$d\vec{\xi}=\vec{v}(\vec{\xi},t)dt.$$
This velocity field by the way is the Euler point of view: we don't follow fluid particles but instead assign a fluid speed to any point of the fluid at any time. But let's go back to Lagrange point of view. $\vec{\xi}$ does not only depends on time $t$, it also depends on the initial position $\vec{x}$ at $t=0$. It should be intuitive that two fluid particles starting at different positions will end up at different positions. Thus so as not to forget about the full dependencies of $\vec{\xi}$, we write
$$\vec{\xi}=\vec{X}(\vec{x},t).$$
This function $\vec{X}$ has a name: the flow map. The word "map" just means "function" here. This gives us another way to write the mouvement $d\vec{\xi}$ above: at $t+dt$, the fluid particle is at position 
$$\newcommand{\partialder}[2]{\frac{\partial{#1}}{\partial{#2}}}
\vec{\xi}+d\vec{\xi}=\vec{X}(\vec{x}, t+dt)=\vec{X}(\vec{x},t)+\partialder{X}{t}dt.$$ 
The same $\vec{x}$ throughout because we look at the same particle that started from $\vec{x}$ at $t=0$. Thus by identifying the two expressions for $d\vec{\xi}$ we have got, and not forgetting the $\vec{\xi}=\vec{X}(\vec{x},t)$, we get the fundamental property:
$$\partialder{\vec{X}}{t}=\vec{v}(\vec{X},t).\tag{1}$$
It connects the points of view of Lagrange and Euler and it can actually be taken as a rigorous definition of the velocity field $\vec{v}$.
We have not expounded the dependency of $\vec{\xi}$ on its initial position $\vec{x}$: it will be important later, so let's do that. Consider two fluid particles, one starting at $\vec{x}$ at time $t=0$ and another one starting at $\vec{x}+d\vec{x}$. At time $t$, the first one will be at $\vec{\xi}=\vec{X}(\vec{x},t)$  whereas the second one will be at $\vec{\xi}+d\vec{\xi}$ (beware not the same $d\vec{\xi}$ as above!) given by
$$\vec{\xi}+d\vec{\xi} = \vec{X}(\vec{x}+d\vec{x},t)=\vec{X}(\vec{x},t) + d\vec{x}\cdot\nabla \vec{X}.$$
Here $\nabla$ differentiate with respect to the initial position $\vec{x}$. Hence,
$$d\vec{\xi} = d\vec{x}\cdot\nabla X = \sum_{i=1}^3 dx_i \partialder{X}{x_i}=dx_i\partialder{X}{x_i},$$
where the last form uses the convention that there is an implicit summation on repeated indices, a convention which greatly reduces clutter! I will use it throughout the rest of this answer.
Application to your problem
After this long introduction, let's go back to  your problem. Starting with the definition of $\Gamma$,
$$\Gamma = \oint_{C(t)}v_i(\vec{\xi},t) d\xi_i,$$
using 
$$d\xi_i=\partialder{X_i}{x_k} dx_k,$$
we can express $\Gamma$ with an integration over the contour at time t=0,
$$\Gamma= \oint_{C(0)}v_i\big(\vec{X}(\vec{x},t),t\big) \partialder{X_i}{x_k}(\vec{x},t)dx_k.$$
Now the differentiation poses no problem since the domain of integration is time independent:
$$\frac{d\Gamma}{dt}=\oint_{C(0)} \frac{d}{dt}\left(v_i\big(\vec{X}(\vec{x},t),t\big)\right) \partialder{X_i}{x_k}(\vec{x},t)+v_i\big(\vec{X}(\vec{x},t),t\big) \frac{d}{dt}\left(\partialder{X_i}{x_k}(\vec{x},t)\right)dx_k.$$
In the second term, the derivative with respect to time is actually only a partial derivative, as $\vec{x}$ does not depend on $t$,
$$\frac{d}{dt}\left(\partialder{X_i}{x_k}\right)=\partialder{}{x_k}\partialder{X_i}{t}= \partialder{v_i(\vec{X},t)}{x_k},$$
where I used eqn. (1). Thus the full second term inside the integral reads
$$v_i\big(\vec{X}(\vec{x},t),t\big) \frac{d}{dt}\left(\partialder{X_i}{x_k}(\vec{x},t)\right) = \partialder{}{x_k}\left(\frac{1}{2}\vec{v}^2(X,t)\right),$$
and the corresponding piece of integral is therefore
$$\oint_{C(0)} \nabla\left(\frac{1}{2}\vec{v}^2(X,t)\right)\cdot d\vec{x}=0.$$
The first term gives the particulate derivative
$$\frac{d}{dt}\left(v_i\big(\vec{X},t\big)\right)=\frac{Dv_i}{Dt}\big(\vec{X},t\big).$$
We are therefore left with
$$\frac{d\Gamma}{dt}=\oint_{C(0)} \frac{Dv_i}{Dt}\big(\vec{X},t\big) \partialder{X_i}{x_k}(\vec{x},t)dx_k.$$
We finish by doing the change of variable $\vec{\xi}=\vec{X}(\vec{x},t)$ to go back to an integral over the loop at time $t$,
$$\frac{d\Gamma}{dt}=\oint_{C(t)}\frac{Dv_i}{Dt} d\xi_i.$$
The demonstration is finished with 
$$\frac{D\vec{v}}{Dt} =-\frac{1}{\rho}\vec{\nabla}p$$
where $p$ is the pressure and $\rho$ the constant and uniform density. 
Rigorous version of your demonstration
Any curve can be parametrise as $\vec{x}(u)$ when $u$ varies from 0 to 1. Here we must relate the parametrisation of $C(t)$ and $C(t+\Delta t)$. We can choose to do it by introducing a dependence on $t$ in that parametrisation so that the fluid particle on the loop $C(t)$ at position $\vec{x}(u,t)$ shall be on the loop $C(t+\Delta t)$ at position $\vec{x}(u,t+\Delta t)$. As a result,
$$\partialder{\vec{x}(u,t)}{t}=\vec{v}\big(\vec{x}(u,t),t\big). \tag{2}$$
Moreover since $C(t)$ is closed, we impose of course that
$$\vec{x}(0,t)=\vec{x}(1,t). \tag{3}$$
With such parametrisations,
$$\Gamma=\oint \vec{v}\cdot d\vec{s} = \int_0^1 \vec{v}\big(\vec{x}(u,t),t\big)\cdot \partialder{\vec{x}(u,t)}{u}du.$$
Since the bounds of the integral do not depend on $t$, we have
$$\frac{d\Gamma}{dt}=\int_0^1 \frac{d}{dt}\left(\vec{v}\big(\vec{x}(u,t),t\big)\right)\cdot \partialder{\vec{x}(u,t)}{t}
+\vec{v}\big(\vec{x}(u,t),t\big)\cdot \frac{d}{dt}\partialder{\vec{x}(u,t)}{u}
du.$$
In the second term, the derivative with respect to $t$ is only a partial derivative as $u$ and $t$ are independent variables, thus that term reads, using eqn. (2),
$$\vec{v}\big(\vec{x},t\big)\cdot \partialder{}{u}\underbrace{\partialder{\vec{x}}{t}}_{\displaystyle\vec{v}(\vec{x},t)}=\partialder{}{u}\left(\frac{1}{2}\vec{v}^2(\vec{x},t)\right).$$
That transformation I have just done is the rigorous version of 
$$\frac{Dd\vec{s}}{Dt}=\vec{v}$$
you wondered about. I could leave it here but let's finish! The integral of that second term reads
$$\int_0^1 \partialder{}{u}\left(\frac{1}{2}\vec{v}^2(\vec{x},t)\right) du = \left[\frac{1}{2}\vec{v}^2\big(\vec{x}(u,t),t\big)\right]_{u=0}^{u=1} = 0$$
by using eqn. (3).
As for the first term, it reads, using again (2),
$$\left(\underbrace{\partialder{\vec{x}}{t}}_{\displaystyle\vec{v}(\vec{x},t)}\cdot\nabla+\partialder{}{t}\right) \vec{v}(\vec{x},t)=\frac{Dv}{Dt}(\vec{x},t).$$
So
$$\frac{d\Gamma}{dt}=\int_0^1 \frac{Dv}{Dt}\big(\vec{x}(u,t),t\big)\cdot \partialder{\vec{x}(u,t)}{u}du=\oint_{C(t)}\frac{Dv}{Dt}\cdot d\vec{s}.$$
A: You have a couple of weird things going on; in particular you draw a new $\mathbf V$ in your second half of the diagram, which looks wildly inappropriate given your streamlines. Like, if this were a map, the streamlines are pointing east-southeast whereas your $\mathbf V$ (which must point along the local streamline!) is pointing north-northeast, at about 90 degrees to where it should be. Let me use lowercase $\mathbf v$ for the stream velocity because I like its aesthetics more.
Anyway what's happening is that you start off wanting to perform a line integral of $\mathbf v(\mathbf r, t)$ about some loop $L = \{\mathbf r(q)~:~ 0 \le q < 1\}.$ What does this mean? Well given our definition of "line integral" it means$$\Gamma_L(t) = \oint_{L}d\ell\cdot\mathbf v = \int_0^1 dq~\mathbf v(\mathbf r(q), t) \cdot \frac{d\mathbf r}{dq}.$$
Okay, now we want to parallel-transport this thing. What happens when you parallel-transport some scalar or vector field? We had $f(\mathbf r, t)$ and now we must consider, at some time $dt$ after, the change in field $$df = f(x + v_x~dt, y+v_y~dt, z+v_z~dt, t + dt) - f(\mathbf r, t) \approx \left(\mathbf v\cdot\nabla f + {\partial f\over\partial t}\right)~dt.$$ That is where the "material derivative" comes from, it is the derivative of flow that is going downstream. Note that this appearance of the gradient is not "magical", in fact any small change $f(\mathbf r + \delta \mathbf r, t+\delta t)$ must be $f(\mathbf r, t) + \nabla f \cdot \delta \mathbf r + \partial_t f~\delta t,$ and we are just identifying above that $\delta\mathbf r/\delta t = \mathbf v$ so that we're following a streamline.
So you want to parallel transport the loop. In this case our new loop must now be $L' = \{\mathbf r'(q) = \mathbf r(q) + \mathbf v(\mathbf r(q), t)~dt, 0\le q < 1\}.$ 
The new line element must be $d\mathbf \ell' = dq~{d\mathbf r'\over dq},$ just as the earlier $d\mathbf \ell$ on $L$ was a shorthand for $dq~{d\mathbf r\over dt}.$ Peeking inside, since $\mathbf v$ varies with $\mathbf r$ which varies with $q$, we have a nontrivial contribution which has changed over the time $dt$. But the chain rule is in full effect here; when we take the derivative we consider $q + dq$ and that causes us to look at $\mathbf v(\mathbf r(q) + {d\mathbf r\over dq}~dq, t)$ which gives us finally $$d\mathbf\ell' = dq~{d\mathbf r\over dq} + dq~\left({d\mathbf r\over dq}\cdot\nabla\right)\cdot \vec v~dt.$$
This means that $\frac{d\ell' - d\ell}{dt} = dq~\left(\frac{d\mathbf r}{dq}\cdot \nabla\right)\mathbf v.$ This is the correct expression for what we'd call $\frac{D}{Dt} d\ell.$ You might even write it with the mnemonic $(d\ell\cdot\nabla)\mathbf v$ if you prefer, it's very similar to our earlier $\delta r\cdot \nabla f$ expressions, except this applies to all three of the vector components independently.
Now the question is, can we think of this as an expression for $d\mathbf v$? But you might already see that the answer is "sort of, yes", because this all came from trying to compute $d/dq\Big(\mathbf v\big(\mathbf r(q), t\big)\Big).$ However, there is a caveat here, which is that we are still integrating over the loop $L$ in theory, and its $\mathbf r(q)$ still appears in our expression, so writing this out as if it were a line integral $\oint_L\mathbf v\cdot d\mathbf v$ does not seem to make terribly large amounts of sense and I'm not sure I could map $L$ to a nice structure in $\mathbf v$ space to complete the argument -- but maybe I'm just being too conservative. In any case I'd like to phrase it as an exact differential argument, which requires observing that: $$\frac{dv^2}{dq} = \frac{d}{dq}\big(\mathbf v(\mathbf r(q), t) \cdot \mathbf v(\mathbf r(q), t)\big) = 2 \mathbf v(\mathbf r(q), t) \cdot \left(\frac{d\mathbf r}{d q} \cdot \nabla \right)\mathbf v.$$
One therefore has more simply that $$\oint_L \mathbf v \cdot \frac{D}{Dt}d\ell = \int_0^1 dq~\frac{d}{dq}\left(\frac12 v^2\right) = \frac12 v_1^2 - \frac12 v_0^2.$$Since the curve is closed $v_1 = v_0$ and this vanishes.
