Added HDM

Added a BEAGLE/DSHM based memory system as an alternative to standard
ACT-R DM.

Some notes:

1. HDM takes chunks that are sets of slot:value pairs, (e.g.,
"colour:yellow shape:square size:small") but not chunks without slots
(e.g., "yellow square small"). I plan to add the ability to handle
chunks without slots, but haven't yet.

2. A retrieval query to HDM must specify the value that is being
retrieved and must specify no more than one value (e.g., "colour:yellow
shape:? size:small"). The chunks "colour:yellow shape:square" and
"colour:yellow shape:? size:?" are not valid queries.

3. There's a bunch of junk code from the original DM that's still in
there, probably does nothing, and I'm afraid to delete it.

4. Reaction time is controlled with the "recall" function, which I
haven't modified. Currently vector cosine feeds right into the recall
function. The recall function may need to be tweaked to produce
sensible reaction times.