No longer handle 'reset' signal as it doesn't play well with Pidgin.

In pidgin, everytime we send a fake backspace, the input context
sends back a reset signal, destroying the currently processing word.
New separate(), in FUNCTIONAL style \m/
Fix pressing "z" at the start of a sentence in TELEX
More debug messages
Better mark removal

- Fix an IndexError in undoing 'đ'.
- When removing mark from a char, preserve its accent.
Temporarily stop allowing undoing with 'z'

Other changes:
- bogo/mark.py: add get_mark_char()
- ibus_engine.py: add brace-shifting code ('[' -> '{' when capslock is
  on)
- bogo/new_bogo_engine.py:
    + new, cleaner process_key() function
    + add can_undo()
    + formatting, cleaning up
Allow setting custom input methods in config file. WIP #22.

Custom input methods should be defined like this:
```
"custom-input-method": {
     "mine-input-method": {
        "a": "e^"
       }
```
Sanity check for Config
Streamlining stuff. Fix #38;

- new_bogo_engine.py:
    + refactor transform(), a switch-case now handles all cases, even
        undoing, no more abrupt returns.
    + Move the default config and input method definitions to config
        file.
    + API break: process_key() now requires a config dictionary