feat(build): use browserify

Switch from plain files concatenation to browserify.
See: http://browserify.org/

- add gulp-browserify to dependencies
- move legacy files to ./source/legacy
- move new files to ./source, remove prefixes (e.g. "10_...")
- wrap new files with "module.exports = ..." CommonJS wrapper
- update "scripts" gulp task
- add index-top.litcoffee and index-frames.litcoffee files

Also for tests:

Use karma-browserify.
See: https://github.com/xdissent/karma-browserify

- add karma-browserify to dependencies
- move tests to ./test/unit, remove ".test." suffix
- add unit/index.litcoffee file to force test order
- wrap test files with "module.exports = ..." CommonJS wrapper
- update "test" gulp task
- move browserify config used in both karma config and gulpfile
to ./build/browserify-config.litcoffee
- update "clean-build" task: do not remove ./build/ itself
style(opera meta): move userscript-header.js to meta/opera
fix(build): output "Mathon packager failed" in yellow, not red

Mathon package task is optional, so it's failure is not that "red".
feat(build): use browserify for background scripts

Change all 4 content scripts and 1 background script (Opera):
- require app module, use app.name instead of <%= name %>
- remove ".template." suffix
- rename "inject" to "content" as they are content scripts

Enable browserify for these files, don't copy them in "meta" task.
refactor(background): require superagent with browserify

Use browserify to include superagent library in background scripts.
Add superagent to dependencies.
As this was the only bower dependency, remove bower-related stuff.
refactor(background): move absolute-url.js to source/meta/

- move absolute-url.js to source/meta/
- remove it from both firefox/chrome/content/ and opera/
- rename it to uri.js
- add CommonJS definition: export both functions inside it
- include it using require() via browserify

Yay! I wanted to do this so badly.
fix(build): don't copy .js files in "meta" task

Add filter "!**/*.js" which currently denies to copy
meta/opera/userscript-header.js
refactor(background): move handleAjax to handle-ajax.litcoffee

- extract handleAjax to source/meta/handle-ajax.litcoffee
- include it using require() via browserify
refactor(background): move inject to inject.litcoffee

- extract inject() to source/meta/inject.litcoffee
- include it using require() via browserify
docs(firefox background): note that Mozilla-fu taken from VkOpt
fix(dislike): in vk_dislike.users_info() use app.vkApi.request()
refactor(dislike): remove unused vk_dislike.auth() and .post()
fix(ajax): always use Content-Type "x-www-form-urlencoded"

Default one is "json" which vk.com doesn't understand.

This faces #83 (list of users disliked works correctly now).
fix(build): don't run "gulp bower" on Travis

"bower" task was removed in 79b7c544e21edce25742daacf3b5b3881f0feb42
feat(ajax): make same-origin requests in page context

Because some ajax requests need correct cookies and Opera 12
(possibly Firefox too) doesn't pass them when making requests from
background script (it has a different context with a different "document"
and with disabled cookies), we have to split ajax handling:
same-origin requests - in ordinary target window with injected scripts,
cross-origin requests - in background context.

- move uri.js and handle-ajax.litcoffee to source/
- use them in ajax module for same-origin requests
- update background scripts accordingly
- update tests for ajax module

This commit contains cat power.
fix(dislike): make like widget requests in page context

This finally closes #83.
fix(vkApi): add "name" attribute to iframe equal to "id"

This closes #84.