Add writeData and readData to NS(In|Out)putStreams.

writeData:(NSData *) lets us write NSData objects from Nu, while
(NSData *)readData lets us read NSData objects from Nu. This lets us use
input and output streams from Nu, since otherwise they deal in raw byte
arrays that we can't manipulate easily from there.
Add Show Develop menu preference in Advanced.

This shows/hides a Develop menu with a few entries. These are not hooked
up yet.
Access developMenu through accessor.
Hook up develop menu to vi commands.
Use %eval for whole-file eval.
Add :console command to lazy load and toggle console.
Toggle Console reflects the behavior better.

The menu item was Show Console before, which isn't quite right.
Drop key equivalents for Develop menu items.

Users can map these if they want, and we can't show them because we show
the corresponding vico commands.
ViBundle initWithDirectory expands tildes in paths.

Most other places seem to expand tildes, so let's do it here too.
Add reloadbundle ex command.

This command tries to load the current directory as a bundle, or, if it
is given a path, tries to load the given path as a bundle directory.
Fix reload bundle develop menu entry.

It was referring to reload-bundle, while vico/vi(m) commands have no
separators between words; the command is :reloadbundle.
Fix evaluate menu item in develop menu to use cr.

Before we left the CR out of the end of the command, so it would just
fill in the ex command line but not run the command. We now properly end
the items in <cr> so that they execute the evaluation.
Merge branch 'nsdata-interactions' into merged
Fix a couple of code style issues.
Fix some code style issues.
Merge branch 'nsdata-interactions' into merged
Merge branch 'develop-menu' into merged
Initial implementation of macro recording.

A few things:
 - Right now you have to trigger it with "xqa where x is the register
   and a is an unused argument.
 - You have to end the macro recording with qa, again a is unused. There
   really isn't a toggling command mode where the first time you see a
   command you require an argument and the second you don't yet. Once we
   add it we can use the vim qx/q approach.
 - Currently only keystrokes in the current key manager are added to the
   macro. In particular, this means that if you use command mode, the
   only thing that enters the macro is the : that puts you in command
   mode in the first place.
Record across key managers.

While a macro is recording, all key managers report their key presses to
the key manager that is recording the macro. Recording commands as part
of a macro is now therefore possible.
Add togglable commands (like q for macro recording).

Adding the ViMapNoArgumentOnToggle flag to the ViMapNeedArgument flag
will make the command take an argument, then not take an argument, then
take an argument again. This matches the behavior of vim's macro
recording command, q. q takes a register (e.g. qa), then records until q
is pressed again. The second time, q does not need to be followed by
anything.

q now works this way in Vico as well, and any other command can use the
same functionality by applying the same flag.