CueSettingAlign tests passing 100%

#230, #231, #234 and #235 should land first.

Implemented general cuesetting parser routine which is used by `webvtt_parse_align()`

Hacked parse_cueparams to call `webvtt_parse_align()` when it's read an
'align' cuesetting keyword.

Passes all unit tests:

```
Running main() from gtest_main.cc
[==========] Running 13 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 13 tests from CueSettingAlign
[ RUN      ] CueSettingAlign.Start
[       OK ] CueSettingAlign.Start (0 ms)
[ RUN      ] CueSettingAlign.Middle
[       OK ] CueSettingAlign.Middle (0 ms)
[ RUN      ] CueSettingAlign.End
[       OK ] CueSettingAlign.End (0 ms)
[ RUN      ] CueSettingAlign.Left
[       OK ] CueSettingAlign.Left (0 ms)
[ RUN      ] CueSettingAlign.Right
[       OK ] CueSettingAlign.Right (0 ms)
[ RUN      ] CueSettingAlign.BadKeyword
[       OK ] CueSettingAlign.BadKeyword (0 ms)
[ RUN      ] CueSettingAlign.NoKeyword
[       OK ] CueSettingAlign.NoKeyword (0 ms)
[ RUN      ] CueSettingAlign.BadValue
[       OK ] CueSettingAlign.BadValue (0 ms)
[ RUN      ] CueSettingAlign.NoValue
[       OK ] CueSettingAlign.NoValue (0 ms)
[ RUN      ] CueSettingAlign.BadDelimiter
[       OK ] CueSettingAlign.BadDelimiter (0 ms)
[ RUN      ] CueSettingAlign.NoDelimiter
[       OK ] CueSettingAlign.NoDelimiter (0 ms)
[ RUN      ] CueSettingAlign.UppercaseKeyword
[       OK ] CueSettingAlign.UppercaseKeyword (0 ms)
[ RUN      ] CueSettingAlign.UppercaseValue
[       OK ] CueSettingAlign.UppercaseValue (1 ms)
[----------] 13 tests from CueSettingAlign (1 ms total)

[----------] Global test environment tear-down
[==========] 13 tests from 1 test case ran. (1 ms total)
[  PASSED  ] 13 tests.
```