extend feature windowcommands over flyouts #708

this pr extend the feature to show window commands over flyouts.

- [x] i split the ```WindowCommands``` into ```WindowCommands```and ```WindowButtonCommands```. the ```WindowButtonCommands``` only holds the min, max, close buttons. and the ```WindowCommands``` the additional buttons with commands.
- [x] don't set focus ```FlyoutsControl```and ```MetroContentControl``` (that has bothered me)
- [x] feature should work for ```Position == Position.Top```too
- [x] introduce new boolean property ```ShowWindowCommandsOnTop``` (default true) for ```MetroWindow``` to enable/disable the feature for the additional buttons. the min, max, close buttons are always on top!
- [x] if ```ShowWindowCommandsOnTop``` set to true change the margin of flyout header template

![image](https://f.cloud.github.com/assets/658431/1347458/53cbe610-36b0-11e3-90f3-1457cc5b2c6a.png)
![image](https://f.cloud.github.com/assets/658431/1347459/571d5b28-36b0-11e3-945b-775087c738bd.png)
![image](https://f.cloud.github.com/assets/658431/1347460/5a594888-36b0-11e3-9297-da1ac129c3f0.png)
![image](https://f.cloud.github.com/assets/658431/1350449/ccea35e2-370a-11e3-808c-af6b67c689c9.png)
![image](https://f.cloud.github.com/assets/658431/1350454/e6bc933e-370a-11e3-985c-45d23d6e11ea.png)

Closes #708