Having static assets in the `server` folder is not consistent.

When the `server` component was created, a folder (`www`) was created in
the directory (alongside the JS modules) for ease of implementation. It
makes sense (in terms of consistency) to have those assets in the
`assets` folder, just like the `client` component.

Note: `assets/*` were moved into `assets/client`.
There is no NOTICE file in `assets/server/images`.

Since an image was copied into the server side assets directory
it needs a corresponding notice file just like `assets/client/images`.

Note: In an earlier commit the directory structure was
re-factored, but the link to `assets/client/images/NOTICE`
was not updated.
If the npm package name is changed, everything breaks.

This commit is directly related to:

2e22193d670841003bf538a9782be98693fa5772

The re-factor in the above commit was considered sufficient,
however when the package name in `package.json` was changed
to something other than `ripple`, the require pattern broke
down, and nothing would really work, without making drastic
changes to how node based JS was executed and packaged up
(as an npm package), as well as testing said code.

In consideration of that, it seemed most practical to change
things to be less (for lack of a better word) fragile.

There are two main changes this commit introduces.

1. The way `require` is used has changed.

For all node specific code, you require modules using relative
paths (as usual, in node).

This includes `lib/cli` and `lib/server`. See the HACKING file
update for more details.

For any code in `lib/client`, it is the same as before, except:

You should use a global `ripple` method to require in a
package relative to `ripple/client/..`.

For example:

    var foo = ripple('foo');

Would translate to

    var foo = require('ripple/client/foo');

Ultimately, this gives absolute control on the method that
"requires" modules, so when, say, you are testing the modules
in a node environment, you can translate it to an absolute path
that node will understand.

The second change is that all core lib dirs are back in `lib`.

This is because the main reason why code was moved out of `lib`
was because of the way require was intended to be used across
all (node/browser) environments, and now that it is not a
necessity, having it in `lib` creates a more succinct top level
directory structure, etc.

Note: This also means the `npm link` step in `configure` is
no longer needed.

But, why have an inconsistent `require` paradigm across the project?

Yes, indeed.. Well, the main reason is because this seemed the most
practical, considering other alternatives, such as using relative
paths in the large subset of (client) JS modules and packing it
into a browser specific file that worked with relative paths, which
is onerous (at best). And, because the code in the browser is
ultimately different than other code in this project, and is
sort of considered its own sub-project in many ways (i.e. perhaps it
will become a separate project, but for now, this seemed best).
Calls to `ripple/client/about` should be `ripple/about`.

This is a bug that was introduced by:

2e22193d670841003bf538a9782be98693fa5772

This matched a regex in a vim macro, and was erroneously changed
and then missed in a code review.

Note: This was not introduced into any release (as the above commit
still remains in the `next` branch).
The (jsonp proxy) xml content type check should use lower case.

This was not working as expected, since the headers object is lower
case.