Updated the assign unit tests to show it can handle variants (+ refactored a bit)

git-svn-id: http://svn.boost.org/svn/boost/trunk@86234 b8fc166d-592f-0410-95f2-cb63ce0dd405
Bug fix - wrong template parameter in buffer algorithm

git-svn-id: http://svn.boost.org/svn/boost/trunk@86235 b8fc166d-592f-0410-95f2-cb63ce0dd405