Implement recordSource and getLastRecord for file destination.

This means that both 'cat' and 'resume' will work for file destinations.
Bump version number.
Implement 'as-history' option for cat command.

This lets you show only the series of commands entered, as in the
bash history.
Add a newline after end of cat.
Bump version number (and a fix).

Fix was meant to be in the previous commit. Whoops.
Refactor for niceness.

Dedupe destination option code.
Don't use boolean flag, go straight to format option.
Implement destination providers.

This gives another layer of abstraction over destinations, and thus
allows you to do things like list current projects.

Also starts to implement support for user/global project namespaces.
Add 'list' command, introduce global/user projects.

There are now two types of projects:
 - User projects are specific to a user. Shared destinationProviders
   may choose how to fence off these to a specific user.
 - Global projects are shared between multiple users.

 These concepts are identical for the file-based provider, since it
 depends entirely on how readable the file is. The redis provider
 implements separate namespaces for user-specific and global sessions.

 Also implemented a 'list' command which shows all projects available
 at a given destination.
Ensure projects have legal names.

Project names allowed by regex [a-zA-Z0-9][a-zA-Z0-9._-]*
Add 'global' option.

This allows access to the 'global' namespace introduced in 6ba1c96745d6cd17c2a1dbab2df527d14e833c2f
Bump version number.

The API changed in a breaking way back in commit
43335f9483bc4973b0dd237ac493dc5c211a21b0 when the format for storing
projects changed.
Merge pull request #2 from nc6/master

Pull to version 0.2.0.0