1) Added basic support to associate metadata to most objects.  The
   data is stored in the ObjectIdDict Base.META.  However, interaction
   should be done through the functions:
   getmeta, setmeta! & hasmeta

2) Ported the existing REPL-help system over to work with this system.
   - `help` and `?` work as before (except 3-objects don't work, see test/help.jl)
   - user-made help is now possible through a `@doc`-macro and `doc`-function
   - Documentation of objects is kept in the metadata storage.
     Documentation of non-objects, e.g. keywords, and macros
     is kept in: `Base.Help.NONOBJ_DICT`.

Tests in test/metadata.jl and test/help.jl

Issues:
- every now and then I get a `ERROR: BoundsError()` when initializing
  the help from helpdb.jl
- There is a strange bug with `eval` not picking up its documentation,
  no idea why.