Go back to untyped vectors, but add macros to make them nicer.

Undo the typed vector stuff, but add some macros to vector.h to make
vectors nicer to use. Instead of doing:

```C
struct vector *vector = vector_init(sizeof (int));
int x = 1;
vector_push(vector, &x);
printf("%d\n", *(int*)vector_get(vector, 0));
```

you can do:

```C
struct vector *vector = makeVector(int);
int x = 1;
push(vector, x);
printf("%d\n", get(int, vector, 0));
```
Remove data field from struct parseTree.

I originally added the data field to be used for leaf nodes in the parse
tree that hold data, like the "x" in (identifer x) and the 3 in (number
3), but it's simpler to just use make the "x", for example, just another
parseTree, just a parseTree that doesn't have any children.