Fix two left-nav bugs

Summary:
  - Fixes a bug where dragging a flexible left nav and then pressing "f" to hide it didn't properly reset the content panel's left margin.
  - Fixes a bug where D4185 removed "white-space: nowrap;" accidentally (from @asherkin)

Test Plan:
  - Dragged bar, then pressed "f".
  - Can't repro the nowrap thing for some reason.

iiam

Reviewers: asherkin, vrana

Reviewed By: vrana

CC: aran

Differential Revision: https://secure.phabricator.com/D4194
Tweak padding on revision history table.

Summary: Added 6px to the left and right of each TD on the revision history table.

Test Plan: Used Chrome and a table with many revisions.

Reviewers: vrana, epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4197
Updated Sprites, included darker grey, and upload and download icons.

Summary: na

Test Plan: photoshop

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4201
Update Celerity

Summary: I think I forgot this on my icon update

Test Plan: run celerity

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4203
Fix an exception in Ponder comment saving.

Summary:
Add a `setViewer()` so that PHID loading doesn't throw.

Also remove a period from a button because none of the others have one.

Test Plan: Saved a comment successfully.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4202
Redo hover states on app icons

Summary: This tones down the glow and highlight for a cleaner hover experience.

Test Plan: chrome, firefox

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4207
Align table cell content in Diffusion.

Summary: Most cells in Diffusion were aligning text to the top, and the sigil height is fixed. This lines all up on center.

Test Plan: Tested diffusion with new cell alignment, clicked around to other tables. Looks good in Chrome.

Reviewers: epriestley, asherkin, btrahan

Reviewed By: btrahan

CC: aran, Korvin

Maniphest Tasks: T2189

Differential Revision: https://secure.phabricator.com/D4210
Throw a richer exception when updating tasks with expired leases

Summary: Include task ID and class when raising this exception. I took a brief stab at doing this generically, but (a) we specifically raise this exception outside of normal try/catch because we can't follow normal recovery rules for it and (b) we don't have a reasonable PhutilProxyException or similar right now which would preserve stack traces, and don't have builtin exception nesting support until PHP 5.3.

Test Plan: Faked this exception, verified we get more information in the logs.

Reviewers: btrahan, vrana

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2193

Differential Revision: https://secure.phabricator.com/D4205
Add paste samples to list view.

Summary:
This adds a "body" field to `PhabricatorObjectItemView` which lets you optionally
add more information to the list view. It then uses this new field to show
samples of pastes in the paste list view.

Test Plan:
{F27147}

{F27148}

Reviewers: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4188
Modernize Files lists

Summary: Update to new UI stuff, prepare for mobile.

Test Plan: {F27167}

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D4198
Modernize file detail view

Summary:
Use modern elements for file detail view.

For the "Technical Details", maybe we should implement a disclosure triangle element? I'd guess there are other cases we could use it.

This makes two small practical changes:

  - We show "Delete File" even if you can't delete it; I'm going to align this properly with CAN_EDIT shortly.
  - We no longer show the feature discovery hint about using "arc download".

Test Plan:
{F27179}
{F27180}

Reviewers: chad, btrahan

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D4199
Provide a highlighter cache for Paste

Summary:
D4188 adds a preview of Paste contents to the list, but gets slow for large lists if you have Pygments installed since it has to spend ~200ms/item highlighting them. Instead, cache the highlighted output.

  - Adds a Paste highlighting cache. This uses RemarkupCache because it has automatic GC and we don't have a more generalized cache for the moment.
  - Uses the Paste cache on paste list and paste detail.
  - Adds a little padding to the summary.
  - Adds "..." if there's more content.
  - Adds line count and language, if available. These are hidden on Mobile.
  - Nothing actually uses needRawContent() but I left it there since it doesn't hurt anything and is used internally (I thought the detail view did, but it uses the file content directly, and must for security reasons).

Test Plan:
{F27710}

  - Profiled paste list, saw good performance and few service calls.
  - Viewed paste.
  - Viewed raw paste content.

Reviewers: codeblock, btrahan, chad

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D4204
Modernize file uploads

Summary:
Modernizes file uploads. In particular:

  - Adds a mobile menu, with an "Upload File" item.
  - Adds crumbs to the list view, detail view and upload view.
  - Adds "Upload File" action to crumbs.
  - Moves upload file to a separate page.
  - Removes the combined upload file + recent files page.
  - Makes upload file use a normal file control by default (works on mobile).
  - Home page, file list and file upload page are now global drop targets which accept files dropped anywhere on them. Dragging a file into the window shows a mask and an instructional message.
    - User education on this is a little weak but I think that's a big can of worms?
  - Fixes a bug where dropping multiple files into a Remarkup text area produced bad results (resolves T2190).

T879 is related, although it's specifically about Maniphest. I've declined to make global drop targets yet there because there are multiple drop targets on the page with different meanings. That UI needs updating in general.

@chad, do we have an "upload" icon (counterpart to "download")?

Test Plan: Uploaded files in Maniphest, Differential, Files, and from Home. Dragged and dropped multiple files into Differential. Used crumbs, mobile.

Reviewers: chad, btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2190

Differential Revision: https://secure.phabricator.com/D4200
Minor, add some missing pht(). See D4200.

Auditors: btrahan
Fix some Paste scroll issues

Summary:
  - If a Paste has very long lines, we show far too much text in the summary, because we wrap the lines. Instead, overflow them.
  - If a Paste has very long unbroken lines (MMMMM...), they extend past the page. Instead, add a scrollable container.

Test Plan:
{F27868}

{F27869}

{F27870}

Reviewers: btrahan, codeblock, chad

Reviewed By: codeblock

CC: aran

Differential Revision: https://secure.phabricator.com/D4211
Improve PhabricatorObjectItemListView handling of wide content

Summary: Wide content is currently allowed to push too far to the right, overlapping icons. Prevent it from doing so.

Test Plan:
Before:

{F27906}

After:

{F27907}

After, Mobile:

{F27908}

Reviewers: chad, codeblock, btrahan

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D4212
Provide a separate error code for invalid Conduit calls

Summary: I plan to use this in Arcanist.

Test Plan:
  $ echo '{}' | arc call-conduit x

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4192
Throw on invalid Conduit method parameters

Summary: NOTE: This may break stuff.

Test Plan:
  $ echo '{}' | arc call-conduit conduit.ping
  $ echo '{"x": 1}' | arc call-conduit conduit.ping

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4191
Render warning instead of error for postponed lint

Test Plan: {F27152, size=full}

Reviewers: epriestley

Reviewed By: epriestley

CC: ypisetsky, aran, Korvin

Differential Revision: https://secure.phabricator.com/D4195
Toggle accept warnings on reload

Summary: We now remember this value, it's remembered also after page refresh.

Test Plan: Reloaded revision about to be accepted.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4196