message: Some basic documentation, a comment on behavior I don't quite like.
diff: #include "RAJA/RAJA.hpp"
  #endif
  -
  namespace axom
  {
  namespace experimental
  @@ -503,7 +502,8 @@ public:
  //If branching becomes an isssue, this protective statement will be
  //removed in lieu of expecting the user to not try to insert after
  //clear().
  - if(m_bucket_count*m_bucket_len == 0){
  + if(m_bucket_count * m_bucket_len == 0)
  + {
  return axom_map::Pair<Key, T>(&m_end, false);
  }
  std::size_t index = bucket(get_hash(key));
  @@ -545,7 +545,8 @@ public:
  //If branching becomes an isssue, this protective statement will be
  //removed in lieu of expecting the user to not try to insert after
  //clear().
  - if(m_bucket_count*m_bucket_len == 0){
  + if(m_bucket_count * m_bucket_len == 0)
  + {
  return axom_map::Pair<Key, T>(&m_end, false);
  }
  @@ -600,7 +601,6 @@ public:
  */
  bool erase(const Key& key)
  {
  -
  std::size_t index = bucket(get_hash(key));
  bucket_lock(index);
  axom_map::Bucket<Key, T>* target = &(m_buckets[index]);
  @@ -756,30 +756,55 @@ private:
  return hashed;
  }
  - void bucket_lock(std::size_t index){
  + //NOTE: Every single locking function will use the OpenMP locks if Axom was compiled with OpenMP support,
  + //regardless of whether the user code is actually using it.
  +
  + /*!
  + * \brief Acquires lock for a bucket.
  + *
  + * \param [in] index the index of the bucket which the thread wants the lock for.
  + */
  + void bucket_lock(std::size_t index)
  + {
  #if defined(AXOM_USE_OPENMP) && defined(AXOM_USE_RAJA)
  omp_set_lock(locks + index);
  #endif
  }
  - void bucket_unlock(std::size_t index){
  + /*!
  + * \brief Releases lock for a bucket.
  + *
  + * \param [in] index the index of the bucket which the thread wants to release the lock for.
  + */
  + void bucket_unlock(std::size_t index)
  + {
  #if defined(AXOM_USE_OPENMP) && defined(AXOM_USE_RAJA)
  omp_unset_lock(locks + index);
  #endif
  }
  - void init_locks(){
  + /*!
  + * \brief Allocates and initializes a lock for every bucket making up the Map instance.
  + */
  + void init_locks()
  + {
  #if defined(AXOM_USE_OPENMP) && defined(AXOM_USE_RAJA)
  locks = axom::allocate<omp_lock_t>(m_bucket_count);
  - for(std::size_t i = 0; i < m_bucket_count; i++){
  + for(std::size_t i = 0; i < m_bucket_count; i++)
  + {
  omp_init_lock(locks + i);
  }
  #endif
  }
  - void destroy_locks(){
  + /*!
  + * \brief Deallocates and destroys every lock used for this Map instance.
  + */
  + void destroy_locks()
  + {
  #if defined(AXOM_USE_OPENMP) && defined(AXOM_USE_RAJA)
  - for(std::size_t i = 0; i < m_bucket_count; i++){
  + for(std::size_t i = 0; i < m_bucket_count; i++)
  + {
  omp_destroy_lock(locks + i);
  }
  axom::deallocate<omp_lock_t>(locks);
  