Plugin support

This change introduces plugin support for delbrot. Previously, plugins were *technically* supported by adding them to the dependency list and recompiling, but the new system allows for dynamic loading of plugins without the need to recompile. This allows developers to write video filters in C and easily distribute them to end users.

Plugins are packages composed of a .so library, its source code, and documentation. Users can install plugins by simply extracting the .so file to their `~/.config/mkvsynth/` directory. Source code is provided on both moral and practical grounds, since it enables users on non-x86-64 architectures to recompile the plugin as necessary. In the future, I may write a tool that automatically zips these files together and standardizes the documentation.

Syntax-wise, plugins are loaded and called like so:
```ruby
import foo; # load libfoo.so
foo.bar;    # calls function bar defined in plugin foo
```
Eventually I may add support for Haskell-style imports:
```ruby
import foo as f; # custom plugin names
f.bar;

import bar from foo; # only import foo.bar
foo.bar;

import bar from foo as b; # custom function names
b; # have to check for namespace conflicts now
```
Since imports are no different from any other statement, they can be put anywhere: in a conditional, in a function body, etc. I realize this is a bit crazy, but it shouldn't cause any errors or excessive memory usage.

The makefile has been modified to create the `~/.config/mkvsynth/` directory, and the `makeplugin` tool has been added to facilitate plugin creation. Documentation on its use can be found in [plugins.md](https://github.com/lukechampine/mkvsynth/blob/plugins/delbrot/plugins.md).

One problem I've run into is that shared libraries are a bit *too* removed from the delbrot core. For consistency, we'd like to allow plugins to call internal delbrot functions like `MkvsynthError()` and `checkArgs()`, but standalone libraries don't have access to that code. To get around this, the `makeplugin` script compiles plugins with a new file called `plugin.c`, which contains the aforementioned functions, plus some other tidbits. This mostly solves the problem, but there are still some loose ends. One is the boolean type, which uses the macros `TRUE` and `FALSE` defined in y.tab.c. It's kind of a pain having to include the whole header just to get those values, so I might duplicate them in delbrot.h or plugins.c. Another problem is the `linenumber` variable used in `MkvsynthError()`. This variable is inseparable from the interpreter, so there's no way for a plugin to see it. The only workaround I can think of is to pass `linenumber` along with a plugin's function arguments. Or maybe plugins should use a special return value (like an `ASTnode *` with an error type) instead of calling `MkvsynthError()` and let the interpreter handle it...but that would only work for errors, not warnings. I'm not sure what the best approach is.