REST enhancement #1: Allow one to get parameters from headers

As the title say, I reopen #867 here.
I accidentally deleted my (remote) branch, and Github won't let me re-open the P.R.

I re-pushed original code to #867 . This one is rebased (because of #871 ).

The only change from #867 is that I renamed `@fromHeader` to `@headerParam`.
I can revert that if needed, but I think we have 2 advantages here:
- `@fromHeader` only makes sense in a server context. The (D) interface is meant to describe a REST interface. `@headerParam` makes sense in a server and client context.
- `@HeaderParam` is what's used in Java Jersey (Example 3.14, scroll down a bit here: https://jersey.java.net/documentation/latest/user-guide.html#d0e1887 ).

Pinging @Dicebot .