result_of::size::value and result_of::size::type::value should be same type

Split up from #39 

Fix metafunction type mismatch, which is described in [#7304](https://svn.boost.org/trac/boost/ticket/7304). However, still stay on wontfix status.
e.g. In C++03 mode, `result_of::size<deque<...> >::value` has `int`, but `result_of::size<deque<...> >::type::value_type` has `long`.