Feature/x3 keywords

This pull request adds the keyword parser to the extensions. This only covers the case sensitive version. 
Should case insensitive behavior be necessary I can extend this in the future.

I consider this version of the keywords parser as suitable to be merged into develop.
Should something be wrong, or missing, or to be improved please let me know.

1. Bit of a nitpick, but could a space be added to the function declaration -> `> keywords`? It looks very odd as-is.
1. This forward call isn't useful because the arguments are taken by copy. Did you mean to take an r-value reference for the parameter (or rather universal reference as Scott Meyers would point out)?
2. This could get tricky with the variadics, but I think its possible to only accept `kwd_level_1` types to this function (two type packs would be needed). If one of the types given to this function doesn't have specific member names & types it will fail to compile _later_, and the error message will be marginally harder for someone to figure out. This does limit the extensibility of the `keywords_parser` - Joel/K-ballo what do you think?