Refactor to avoid possible strict violation

- More readable variable declarations in Lexer and BBM

- Combine exports and imports in plugins.

- Add an helper method __.map(array, callback, extras) to
  facilitate the refactoring.

- Minor type checking, such as disallowing blank attribute
  key strings.

- Most importantly, restore the loss induced by accidentally
  referring to an issue.