Change analysis server protocol to omit empty lists when optional.

For object fields of type List that are marked as optional, FromJson
code automatically populates the data structure with an empty list
when the field is omitted.  ToJson code automatically omits the field
when its value is an empty list.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//482573004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39507 260f80e4-7a28-3924-810f-c04153c831b5
Improve error reporting in analysis server code generation.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//499693002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39508 260f80e4-7a28-3924-810f-c04153c831b5
Implement 'edit.getRefactoring' for rename refactoring.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//499723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39509 260f80e4-7a28-3924-810f-c04153c831b5
Make certain generated constructor parameters optional.

The following constructor parameters are optional as a convenience to
callers.  They default to empty lists:

- SourceFileEdit.edits
- TypeHierarchyItem.interfaces
- TypeHierarchyItem.mixins
- TypeHierarchyItem.subclasses

R=scheglov@google.com

Review URL: https://codereview.chromium.org//499073002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39510 260f80e4-7a28-3924-810f-c04153c831b5
Make more use of generated code in analysis server.

The following generated classes are now used:
- CompletionRelevance
- CompletionSuggestion
- CompletionSuggestionKind
- ErrorFixes
- HighlightRegion
- HighlightRegionType
- HoverInformation
- LinkedEditGroup
- LinkedEditSuggestion
- LinkedEditSuggestionKind
- SourceChange

Generated code is used to produce these notifications:
- analysis.errors
- analysis.highlights
- analysis.navigation
- search.results
- server.error
- server.status

Generated code is used to produce the response to these requests:
- analysis.getErrors
- analysis.getHover
- edit.getAssists
- edit.getFixes
- server.getVersion

Generated code is used to handle these notifications in unit testing:
- analysis.highlights
- analysis.navigation

In addition, these methods have been removed, since they are no longer
needed:
- Notification.getParameter
- Result.setEmptyResult
- Result.setResult

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//497393002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39511 260f80e4-7a28-3924-810f-c04153c831b5
Make more use of generated code in Java analysis server.

These request/responses are now up to date with the spec:
- server.status
- analysis.setSubscriptions
- analysis.updateContent
- analysis.flushResults
- analysis.highlights
- analysis.navigation
- analysis.overrides

Type generation was updated so getters of boolean types would be isX instead of getX

HighlightRegion, NavigationRegion and Outline now have the method containsInclusive generated.

Occurrences now has the additional method contains(int) generated.

AddContentOverlay, ChangeContentOverlay and RemoveContentOverlay no longer take a String type as an input to the type.

Removal of many non-generated types defined in spec.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//474193003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@39512 260f80e4-7a28-3924-810f-c04153c831b5