Prevent whitespace in gem declarations and provide clear error messaging.

As discussed in https://github.com/bundler/bundler-features/issues/61

This prevents whitespace (leading, trailing, or containing) from being part of a gem declaration since gem names with whitespaces are invalid. This also provides clear error messaging about why.