Fix minor issues

- cc9b043 **_result_of::size::value and result_of::size::type::value should be same type, rels to: [#7304](https://svn.boost.org/trac/boost/ticket/7304)._**
  - Fix metafunction type mismatch, which is described in the ticket. However, still stay on `wontfix` status.
- 6881be8 **_result_of::at<Seq, N>::type is't defined when sizeof of sequence is less than N, close [#6507](https://svn.boost.org/trac/boost/ticket/6507), [#7651](https://svn.boost.org/trac/boost/ticket/7651)_**
  - Fix Out-of-Bounds sequence acessing via `at` and `at_c`.
  - `result_of::at_c<sequence<int, char>, 2>::type` (and counterpart of `at_c`) doesn't occur hard error (static assert), but doesn't compile (SFINAE-friendly).
- 6e795e6 **_Mitigate too noisy name-hiding warnings (C4453) on VS2015 Preview._**
  - Rename all preprocessed parameter name `_n` to `_arg_n`; reported by @K-ballo .
- Fix regression with `fusion::pair` and move.
  - 8bcfa8c reverts 63045e8, and 812c027 partially reverts f3fa7a1
  - This regression introduced recent `fusion::pair`'s change.
  - facf65b  **_Avoid to elect templated move-ctor as a copy-ctor._**
    - And, fix unexpected ctor election correctly.

No, original source doesn't use the parameter `data` (see line 77). Thus original caller's (i.e. line 127) argument doesn't make sense (It worked fine fortunately, so far!).

If you want to rename that parameter name to `arg`, we should rename all of other macro's parameter name for consistency.