Реализация сборки тестов

Документацию пока не написал, на случай, если что-то поменяется.

В текущем виде оно работает следующим образом:

### Пользовательское
Папка block.tests оформляется и собирается ровно также как примеры.

В папке block.tests лежат bemjson.js-файлы. Оформляются также как примеры, плюс:
- Нужно добавить подключение *.test.js, по аналогии с подключением обычного js.
- Нужно задекларировать элемент i-bem__test.

Пример:
```
({
    block: 'b-page',
    head: [
        { block: 'i-jquery', elem: 'core' },
        { elem: 'css', url: '_10-header.css', ie: false },
        { elem: 'js', url: '_10-header.js' },
        { elem: 'js', url: '_10-header.test.js' }
    ],
    mods: { theme: 'normal' },
    content: {
        block: 'i-bem',
        elem: 'test',
        content: [
            { block: 'header' }
        ]
    }
})
```

Сами тесты пишутся в технологии test.js. Фреймворк Jasmine.

Пример:
```
BEM.TEST.decl('header', function() {
    it('Два умножить на два должно равняться четырем', function() {
        expect(2*2).toEqual(4);
    });
})
```

Первым параметром в BEM.TEST.decl передается строка или хеш, описывающий bem-сущность (```{block: 'b', elem: 'e', modName: 'pam', modVal: 'pam'}```). Вторым параметром тест.

В страничном файле *.test.js будут борщиковые инклуды всех блочных файлов .test.js, собранных по зависимостям.

Какие конкретно тесты запускать указывается в поле content у i-bem__test в bemjson.js-файле. В примере выше запускается только тест, задекларированный как 'header'. Если не задавать поле content, запустятся все тесты, какие приехали.

Если в блоке есть хотябы одна из технологий (tests, test.js) то будет доступна сборка дефолтного теста. Выглядит все так как будто в блоке есть block.tests/default.bemjson.js с таким содержимым:
```
({
    block: "b-page",
    head: [
        { block: "i-jquery", elem: "core" },
        { elem: "css", url: "_default.css", ie: false },
        { elem: "js", url: "_default.js" },
        { elem: "js", url: "_default.test.js" }
    ],
    content: {
        block: "i-bem",
        elem: "test",
        content: [
            {"block":"block"}
        ]
    }
})
```

### Техническое
Добавлен узел ```TestsLevelNode``` который расширяет ```ExamplesLevelNode```.
Добавлен узел ```TestNode``` который расширяет ```ExampleNode```.

### Сборка
На примере https://github.com/narqo/bl-controls (ветка feature/bem-pr)

Вносим следующие изменения: https://github.com/mishaberezin/bl-controls/commit/abdb7bff6c62876f0ce090a789d7c9eb196a7955

Можно сразу забрать готовый вариант с https://github.com/mishaberezin/bl-controls

Тесты собираются следующим образом:
```
$ git clone git@github.com:mishaberezin/bl-controls
$ cd bl-controls
$ git co tests
$ npm install
$ ./node_modules/.bin/bem make bem-pr
$ ./node_modules/.bin/bem make desktop.sets/attach.tests/01-test
$ ./node_modules/.bin/bem make desktop.sets/attach.tests/default
```