Make it possible to parse 2 element sequences  directly into fusion map

If parser produces 2 element tuple, then fusion::map can be passed
as an attribute to it. Type of first element in produces tuple is used
as a key and second element is a value stored in map.

Few notes how does it work:
- parsing to fusion::map is treated as parsing to container
- special parse_into_container logic call's parser with it's native
  attribute type (fusion::deque<> for sequences) and then updates
  fusion::map with values from it.
Avoid needless construction of sequence<> parser
Added test for fusion::map parsing
Support parsing into fusion adapted structs
Merge branch 'fix-one-element-seq' into parse-into-fusion-map
Support alternative over keys to be used as a key for fussion assoc

Adds support for parsers like:
auto key1 = lit("key1=") >> attr(key1());
auto key2 = lit("key2=") >> attr(key2());
auto value = int();
auto pair = key1|key2 >> value;

where attribute passed to pair.parse() is fusion associative sequence
Added test for parsing to fusion map with keys parsed in alternative<>
Fix for the case when fusion assoc seq is on either side of seq
Move move_to condition to template

Even if branch is never taken it still must be compiled
properly, which can cause compile errors. Moving condition
to template eliminates branching.
Merge branch 'parse-into-fusion-map' of https://github.com/redbaron/spirit into redbaron-parse-into-fusion-map

Conflicts:
	test/Jamfile
Merge branch 'redbaron-parse-into-fusion-map'