Add some basic search help
I refactored how settings and their defaults are done so that the default is in exactly one place.  Also, as I was adding a setting, our check for cyclomatic complexity prohibited having the chain of if-elif for validation, so I refactored validating settings to call subfunctions.  I also added methods to get the default value of a setting and to check if a setting was using its default value (which is distinct from just having the default value).
Added a test to verify the settings validation functions.
Use camelcase for validation function names.  I've moved the camelcase function to the general utilities module, and modified it to handle unicode strings and to split of _ and . (rather than just _).
Added some more tests for the changes I made, specifically on getting defaults or checking if a value is currently the default.
Added an Upload Minimum Chunk Size setting to the settings page.  Abstracted how some items are generated so as to reduce the effort of adding the next setting.  Added an 'Advanced Settings' section to the settings page.
Added support for a minimum upload chunk size to the filesystem and gridfs assetstores.
Fixed some tests that broke with a minimum upload chunk size.  Fixed some python formatting issues.
Added more information to the minimum chunk size setting.
Hide popover when button is clicked with it already open
I refactored the code I wrote yesterday to reduce code duplication.  Also, where possible, analyze upload chunk sizes before we take them into the system rather than after.  This is more efficient and nominally more secure.
Merge remote-tracking branch 'upstream/master' into minimum-upload-chunk-size
Merge pull request #357 from girder/search-widget-improvement

Add some basic search help
Merge pull request #361 from manthey/minimum-upload-chunk-size

Minimum upload chunk size.  This complete issue #354.