Improve preservation position when switching buffers

Solution in 5f3e1c5 does't work in this use case:

- Open a buffer in window A, keep cursor in line L1
- Open the same buffer in window B, keep cursor in line L2
- On window B switch to another buffer
- Switch to window A

The position in window A will jump to L2, instead of staying on L1.

This new autocommands will preserve position based on both buffer and
window.

[1]: http://vim.wikia.com/wiki/Avoid_scrolling_when_switch_buffers