add trait Resolve

this trait gives the real type of an alias
close #588, change type alias

- change `alias` remove inherit
- use new trait `Resolve<T>` to handle incomplete types
change documentation, change CMakeLists.txt

- change documentation of `alias`
- remove block of boost 1.56.0+ versions in CMakeLists
Merge pull request #593 from psychocoderHPC/fix-BoostIncompleteTypeBug

Close #588 Boost 1.56.0+ and Aliases